问题标签 [chai-http]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1407 浏览

node.js - 存根中间件

我正在尝试使用 Sinon 在快速路由中删除一些自定义中间件,但它没有像我预期的那样工作。我希望它不会记录“我正在验证...”,而是将“存根”记录到控制台。看起来 sinon 没有正确地存根中间件。

测试/test.js

应用程序.js

auth.js

路由器.js

包.json

0 投票
1 回答
319 浏览

node.js - 使用 chai-http 响应解决承诺

我对 NodeJs 非常陌生,并且正在尝试运行测试。我正在尝试从 get 调用返回 http 响应,以便我可以对其运行断言。SendGetResponse() 返回promise 并且sendResponse 等待这个promise 被实现。但我得到 (node:2152) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'then' of undefined 并且 sendResponse 不等待。

任何帮助,将不胜感激!

0 投票
3 回答
2916 浏览

node.js - 如何在 Mocha/Chai API 单元测试中模拟 req.session

使用 Mocha/Chai 进行 REST API 单元测试,我需要能够模拟req.session.someKey一些端点。我该如何去嘲笑req.session

我正在为使用 express-session 的 NodeJS Express 应用程序编写 REST API 单元测试。其中一些端点需要使用存储在 中的数据req.session.someKey,如果未定义,端点设置为返回 400,req.session.someKey因此我需要能够模拟它以使测试成功完成。

示例代码:

我试过的:

我试图使用.set()来设置 req.session 但我相信 .set 只是设置标题所以我不相信我可以这样更新它,除非我错过了一些东西。

0 投票
0 回答
130 浏览

node.js - 在测试环境中的服务器上运行 axio 请求

我在笔记本电脑的不同端口上的 localhost 上运行了两个不同的快速服务器。其中一个正在向另一个提出请求。

我正在尝试使用 chai-http 测试服务器 A,但是从服务器 A 到服务器 B 的后续请求导致Error: connect ECONNREFUSED 127.0.0.1:3020.

服务器 A 对服务器 B 的请求:

服务器 B // 引导路由 require('./config/passport')(passport); 要求('./config/express')(应用程序,护照);要求('./config/routes')(应用程序,护照);

服务器 B 配置

使用邮递员而不是 chai 进行测试时,该/invite路线似乎有效。我怀疑 axios 调用,但我不知道在哪里看

0 投票
0 回答
1203 浏览

node.js - Nock 无法使用 chai-http 和 mocha 捕获 post 请求

我正在创建一个与 API 连接的 Web 应用程序,以便进行登录和一些操作,目前我正在尝试使用,和./authenticate在我的应用程序上测试路由。chaichai-httpnock

测试通过但我得到了这个捕获的错误,根据这个,页面没有被重定向,因为调用没有被nock捕获,它被直接发送到API:

但是当我使用真实有效的电子邮件和密码时,此测试通过,没有发现错误:

有了这段代码,测试就通过了,我是否错过了诺克的东西?

=== 编辑 ===

这是我要测试的代码:

这是我的登录路由器(flashMessages 是一个自定义中间件,有助于处理 flash 消息)。

登录路由器使用 loginService,这是与登录一起使用的部分:

最后我有一个用于 http 请求的工具:

任何帮助将不胜感激。

问候。

0 投票
0 回答
65 浏览

node.js - 如何修复代码,我的验证使 mocha 在测试过程中行为不端

我有一条制造新车的路线。该路线在邮递员上测试时完美运行,但当我对其运行 MOCHA 测试时。我收到状态码 500 而不是预期的 201。

我做了一些故障排除,发现我的验证是这个问题的原因,但我不知道在哪里

摩卡测试

验证

汽车路线

我期待 mocha 抛出 201 状态代码,但我收到 500 相反,我在用户路线上使用了类似的测试,并且 mocha 测试在该路线上运行良好

0 投票
1 回答
133 浏览

node.js - 如何修复路线上的摩卡测试?

我有一条路线,我正在这条路线上进行摩卡测试。测试失败并显示错误消息 Uncaught AssertionError: expected undefined to equal 201'

我已经检查了测试用例,一切似乎都很好。任何知道可能出了什么问题的人

测试

控制器

我希望测试通过,但应用返回 undefined

0 投票
2 回答
2280 浏览

mocha.js - 如何用 Chai 和 Mocha 测试嵌套对象?

我正在使用 mocha、chai 和 chai-http 对我的 Node.js 和 Express 应用程序进行集成测试。我正在尝试测试我的登录路线是否有令牌。我尝试了不同的断言来检查数据对象内部是否存在令牌,但它们都不起作用。

来自 Postman 的数据如下所示:

这是我的实际测试,我试图检查 res.body 是否在数据对象中嵌套了令牌。

我收到 Uncaught AssertionError: expected { Object (data, hasErrors, ...) } to have property 'data.token'

0 投票
1 回答
50 浏览

javascript - 使用 Chai HTTP 和 Express 发布数据未注册

我正在寻找一些关于我的测试代码如何发送发布数据的指导。在我的单元测试中,我希望这.send会正确设置数据。但是,在运行时没有任何关于req.body导致TypeError: Cannot read property 'key' of undefined. 这是我的设置。有人对如何解决这个问题有任何建议吗?

测试代码

快递代码:

0 投票
1 回答
2809 浏览

mocha.js - Mocha Chai 检查 Json 响应是否包含特定属性

我正在创建 API 测试,它检查响应是否包含结构中的特定键“textId”:

回应如下:

我试过了:

它们都不起作用