私のコンテナコンポーネントメソッドをテストしようとしています。私のコンテナには、すべての提案をロードして状態を設定する非同期メソッドがありました。例:だから、非同期テスト - MochaとChai - 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を())に置く場合は()。ログは自分の状態を正しく示しています。