例如,我有這樣一些基本的東西:當摩卡/柴測試異步功能的不匹配的期望總是導致超時
it.only('tests something', (done) => {
const result = store.dispatch(fetchSomething());
result.then((data) => {
const shouldBe = 'hello';
const current = store.something;
expect(current).to.equal(shouldBe);
done();
}
});
當current
不匹配shouldBe
,而不是消息說他們不匹配,我得到通用超時消息:
Error: timeout of 2000ms exceeded. Ensure the done() callback is being called in this test.
這就好像期望暫停腳本或其他東西。我該如何解決?這使得調試幾乎不可能。
通常使用異步代碼,您可以將done()傳遞到您的回調函數中並在其中執行您的期望: 'store.getState().get('something',function(err,data){expect ...; done()}})' –
除非,你正在返回一個承諾,否則第5行不會使用異步代碼。 –
對不起,也許這是一個不好的例子,但異步部分是在result.then((數據)=> {'。getState()部分不是異步。 –