node.js - Express.js 中间件集成测试

标签 node.js testing express integration

我正在为 express.js 2.5.8 编写一些中间件。目的是使用基于 session 的附加属性修改请求对象。我对中间件功能进行了单元测试。现在,我想执行一些较低级别的集成测试,以确认 express 服务器正在使用中间件。

我的典型做法是监视中间件功能。但是,这并不是证明中间件按预期工作的最有效方法。

我想做的(如果可能/可行)是加载应用程序,注入(inject)任意 session 数据(不需要有效),请求/访问发送中间件结果的测试路由。从那里,我可以对该结果做出断言。

我一直在使用supertest( super 代理)、zombie、request进行测试,都取得了不同程度的成功。我目前正在努力解决的问题是将 session 数据注入(inject)到请求中,无论它最终将采用哪种形式。

我会很感激一些指导。人们在测试此类行为时使用了哪些方法?

最佳答案

假设快速中间件处理没有被破坏:你为什么不尝试编写一个注入(inject)中间件来负责注入(inject)所需的 session 数据并将注入(inject)中间件放在你要测试的中间件函数之前?

使用这种方法,您不会直接测试客户端代码,而是在注入(inject)中间件中隔离注入(inject)。

关于node.js - Express.js 中间件集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15276528/

相关文章:

javascript - 如何为同一行创建多个where子句?

javascript - 如何在环回资源管理器中隐藏 'id' 属性?

javascript - 用 Cucumber 以不显眼的方式测试 JavaScript?

testing - 测试时 pry

c# - 如何使任务失败然后断言异常

node.js - 如何使用await函数从mongodb中检索值?

node.js - PM2 不适用于 NodeJS (Heroku)

javascript - ssl 版本或密码不匹配 ExpressJS

javascript - 如何在客户端 Node.js 中获取服务器错误消息

node.js - PassportJS - 是否可以为另一个用户更改 req.user?