node.js - 如何使用 Mocha 和 Nock 重新测试相同的 URL?

标签 node.js mocha.js

我正在使用 Mocha、Chai、Sinon、Proxyquire 和 Nock。

对于这个特定的测试场景(正在询问这个问题),希望多次测试完全相同的 URL,每次都在一个单独的测试中,期望得到不同的响应。

例如,没有商家 Feed、1 个商家 Feed 和 2 个商家 Feed 的响应。

现有代码都可以正常工作,此外,如果我单独运行测试,它们会通过。

但是,如果我在一个套件中使用 Mocha 一起运行它们,它们就会失败。相信问题在于 Nock 劫持了给定 URL 的全局 http 对象,并且每个测试(同时异步运行)都在竞争相同的全局响应引用。

在上述场景中,使用 1 个商家的预设回复准备的响应被设置覆盖以响应 2 个商家等。

是否有避免这种情况发生的机制,例如保证异步 Mocha 测试用例的串行执行(我认为这是默认行为)。

最佳答案

针对您的第 2 点),您可以使用 nock.cleanAll() 清理所有准备好的 nocks:

https://github.com/pgte/nock#cleanall

您可以将它放在 afterEach block 中,以确保您在测试之间没有剩余的 nocks。

afterEach ->
  nock.cleanAll()

关于node.js - 如何使用 Mocha 和 Nock 重新测试相同的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24553154/

相关文章:

javascript - 使用 Chai 进行单元测试时,未定义的 "TypeError: Cannot read property ' 地址'是什么意思?

node.js - 如何修复请求错误: Error: connect ETIMEDOUT while running Mocha JS/NodeJS test from behind proxy

node.js - Socket.io:WebSockets 可以处理多少个并发连接?

mysql - 全文搜索不适用于两列

javascript - socket.send 在 io.sockets.on() 之外

javascript - 使用 Mocha 测试 javascript - 如何使用 console.log 调试测试?

javascript - 如何模块化 Chakram 中的函数以获取值

node.js - node api 上的 mocha chai 测试总是收到 404 状态

node.js - 如何解决 Socket.io 404(未找到)错误?

javascript - Node.js crypto.pbkdf2Sync 密码与 python 脚本不匹配