Sinon fakeServer与摩卡和axios

时间:2017-05-02 17:54:22

标签: mocha sinon axios

我正在尝试让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();
    });
  })  

1 个答案:

答案 0 :(得分:2)

您的执行环境似乎是NodeJS,即使它没有被提及。其他人有同样的问题 - 看看here

此外,Sinon团队提到它是outside their scope因为XHR应该在浏览器中正常工作,其中假服务器按预期工作,因为它存根XHR对象。

Axios在服务器上运行时使用不同的库来发出请求,因此默认情况下此方案无效。像<{3}}这样的 axios 有特定的模拟库作为替代。