带有 mocha 和 axios 的 Sinon fakeServer
Sinon fakeServer with mocha and axios
我正在尝试让 sinon.fakeServer 使 axios return 成为伪造的响应。我可以看到网络请求 404 或尝试转到实际的 URL.
而不是 returning 模拟负载
我的设置:
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();
});
})
你的执行环境好像是NodeJS,虽然没有提到。其他人也有同样的问题 - 看看 。
Sinon 团队还提到它 outside their scope 因为 XHR 应该在浏览器中正常工作,他们的假服务器在存根 XHR 对象时按预期工作。
当 运行 在服务器上时,Axios 使用不同的库来发出请求,因此这种情况默认情况下无法工作。 axios 有特定的模拟库,例如 moxios 作为替代。
我正在尝试让 sinon.fakeServer 使 axios return 成为伪造的响应。我可以看到网络请求 404 或尝试转到实际的 URL.
而不是 returning 模拟负载我的设置:
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();
});
})
你的执行环境好像是NodeJS,虽然没有提到。其他人也有同样的问题 - 看看
Sinon 团队还提到它 outside their scope 因为 XHR 应该在浏览器中正常工作,他们的假服务器在存根 XHR 对象时按预期工作。
当 运行 在服务器上时,Axios 使用不同的库来发出请求,因此这种情况默认情况下无法工作。 axios 有特定的模拟库,例如 moxios 作为替代。