我正在使用 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/