带有 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 作为替代。