テスト ケースでネットワーク リクエストを送信していますが、2 秒以上かかることがあります (デフォルトのタイムアウト)。
1 つのテスト ケースのタイムアウトを増やすにはどうすればよいですか?
テスト ケースでネットワーク リクエストを送信していますが、2 秒以上かかることがあります (デフォルトのタイムアウト)。
1 つのテスト ケースのタイムアウトを増やすにはどうすればよいですか?
es6 アロー関数を使用する場合は、定義.timeout(ms)
の最後に a を追加できます。it
it('should not timeout', (done) => {
doLongThing().then(() => {
done();
});
}).timeout(5000);
少なくともこれは Typescript で機能します。
(今日これに遭遇したので)
ES2015 の太い矢印の構文を使用する場合は注意してください。
これは失敗します:
it('accesses the network', done => {
this.timeout(500); // will not work
// *this* binding refers to parent function scope in fat arrow functions!
// i.e. the *this* object of the describe function
done();
});
編集:失敗する理由:
コメントで @atoth が言及しているように、太い矢印関数には独自のthisバインディングがありません。したがって、it関数がコールバックのthisにバインドしてタイムアウト関数を提供することはできません。
結論: タイムアウトの増加が必要な関数にはアロー関数を使用しないでください。
コマンドラインから:
mocha -t 100000 test.js
また、別のアプローチを取り、ネットワーク リソースへの呼び出しをスタブまたはモック オブジェクトに置き換えることを検討することもできます。Sinonを使用すると、アプリケーションをネットワーク サービスから分離して、開発作業に集中できます。