2017-05-02 95 views
0

我想让sinon.fakeServer让axios返回一个伪造的响应。我可以看到网络请求404或试图转到实际URL的超时,而不是返回模拟的有效负载。Sinon fakeServer与摩卡和axios

我的设置:

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

看来,你的执行环境的NodeJS,即使它没有提到。其他人也有同样的问题 - 看看here

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

Axios在服务器上运行时使用不同的库进行请求,所以这种情况在默认情况下无法工作。有axios,如moxios作为替代具体的嘲笑库。