实际测试在这里: https :
我认为顺序可以解释这种行为,但不太确定显式沙箱创建是否是正确的做法。 以后还得查。
看起来它仍然不适用于 axios。
不知道为什么我第一次没有关闭它:在检查这个时,我看到测试正在 Node.js 中运行。 对于 XHR 实现来说,这_自然地_是完全不受支持的。 如果测试在浏览器中运行,比如使用mochify
或 Karma,那将是另一回事,因为 XHR 存根针对浏览器环境。
@brunolm :我还没有看到在浏览器中运行的测试失败,所以在发生之前不会对此进行任何调查。 在 Node 和浏览器的 HTTP 库中运行测试库的 XHR 存根的细节在 Node 上运行时绝对超出了我们的范围😄如果你正在做类似的事情,我会尝试创建一个等价于supertest
的 axios
仅供参考:axios 已经有自己的存根库moxios 。
我通过使用 axios 的请求方法别名解决了这个问题,而不是传递配置并启动请求。 也就是说,而不是axios(config)
我用了axios[method](url, data, config)
所以现在,
sandbox.stub(axios, "get").returns(Promise.resolve({status:200, body: searchResponse}));
这比使用库 moxios 更干净。
最有用的评论
我通过使用 axios 的请求方法别名解决了这个问题,而不是传递配置并启动请求。 也就是说,而不是
axios(config)
我用了
axios[method](url, data, config)
所以现在,
sandbox.stub(axios, "get").returns(Promise.resolve({status:200, body: searchResponse}));
这比使用库 moxios 更干净。
Stackoverflow 答案