2017-07-07 57 views
0

我想打從我code.test.js的愛可信請求文件的位置:如何從玩笑測試頁打Axios公司要求

import axios from 'axios' 
import sinon from 'sinon'; 

describe('get-data',() => { 

let data = {start_date:"2017-06-30",end_date:"2017-07-07",graph:"all"} 

let sandbox; 
let server; 
beforeEach(() => { 
    sandbox = sinon.sandbox.create(); 
    server = sandbox.useFakeServer(); 
}); 
afterEach(() => { 
    server.restore(); 
    sandbox.restore(); 
}); 

it('should display a blankslate', (done) => { 
    axios.get('/api/get/data?data='+JSON.stringify(data)) 
     .then((response.data) => { 
     console.log(response) 
      /*expect($('#users').innerHTML) 
      .to.equal('The list is empty.')*/ }) 
     .then(done, done); 
    setTimeout(() => server.respond([200, 
     { 'Content-Type': 'application/json' }, 
    '[]']), 0); 
}); 
}) 

,但我得到的console.log(response.data)爲未定義。

任何人都可以告訴我如何獲得數據在這裏迴應?

+0

考慮檢查出[諾克](https://github.com/node-nock/nock) –

回答

0

從技術上講,在你的測試中,你不應該實際做一個請求,而是嘲笑它並測試副作用。

但是,如果我沒記錯的話jest嘲笑默認情況下的一切,除非告知不太。在您的package.json添加下面的章節和內容:

{ "jest": { "unmockedModulePathPatterns": [ "axios", ] } }

這應該允許你這樣做在測試中需要您的實際網絡請求。如果您想禁用自動鎖定,您也可以將"automock": true,屬性傳遞給jest部分。

文檔:

https://facebook.github.io/jest/docs/configuration.html#automock-boolean

https://facebook.github.io/jest/docs/configuration.html#unmockedmodulepathpatterns-array-string

+0

仍然'response.data'雖然'response'中的其他字段會正確顯示,但是它仍然未定義 – Pravesh

+0

過去,automocking默認情況下已啓用,但現在它已從v15禁用 - 請參閱https://facebook.github.io/jest/blog/2016/09/ 01 /開玩笑-15.html#禁用,automocking – hinok

+0

你是對的@hinok:thumbsup: – JonE