我想測試我的容器組件方法。我的容器有一個異步方法,用於加載所有提議並設置爲狀態。例如:異步測試 - 摩卡和柴 - 確保done()回調被稱爲
loadProposal(proposalId) {
return axios
.get("http://localhost:9292/api/proposal_drafts/1.json")
.then(response => {
this.setState({
proposal: Immutable.fromJS(response.data)
})
})
}
因此,要測試此方法,我得到組件實例並調用方法(api url被模擬)。
it("sets proposal in the state", (done) => {
const wrapper = shallow(<Container/>)
loadProposalRequest(1)
wrapper.instance().loadProposal(1).then(() => {
chai.expect(wrapper.state().proposal).to.be(Map)
done()
})
})
,但我得到這個錯誤,從控制檯:
Error: timeout of 2000ms exceeded. Ensure the done() callback is being called in this test.
行動:如果我把一個的console.log(wrapper.state())內則()。日誌正確顯示我的狀態。