我正在尝试让sinon.fakeServer让axios返回一个伪造的响应。我没有返回模拟的有效负载,而是可以看到网络请求404s或尝试转到实际URL时超时。
我的设置:
describe('test call', () => {
var server;
beforeEach(() => {
server = sinon.fakeServer.create();
server.respondWith(
"https://my.domain.com/myresource",
[200, { "Content-Type": "application/json" }, "[]"]
);
server.autoRespond = true
});
it('returns empty array', done => {
axios
.get('https://my.domain.com/myresource')
.then(res => {
expect(true).to.equal(true);
done()
})
.catch(err=>{
console.log(err.message);
expect(false).to.equal(true);
done();
});
});
afterEach(() => {
server.restore();
});
})
答案 0 :(得分:2)
您的执行环境似乎是NodeJS,即使它没有被提及。其他人有同样的问题 - 看看here。
此外,Sinon团队提到它是outside their scope因为XHR应该在浏览器中正常工作,其中假服务器按预期工作,因为它存根XHR对象。
Axios在服务器上运行时使用不同的库来发出请求,因此默认情况下此方案无效。像<{3}}这样的 axios 有特定的模拟库作为替代。