2017-05-02 67 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作爲替代具體的嘲笑庫。