컨테이너 구성 요소 메소드를 테스트하려고합니다. 내 컨테이너에는 모든 제안을로드하고 상태를 설정하는 비동기 메소드가 있습니다. 예 :비동기 테스트 - 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()) 넣으면(). 로그에 내 상태가 올바르게 표시됩니다. chai.expect()
(나는 무슨 일이 일어나고 있는지 생각)에서 오류가 발생하는 경우