0
非同期関数のテストを書きたいと思います。MochaJSが非同期関数を待機していません
// Function declaration
someLongAsyncTasks(cb) {
// This function doing some long tasks like fs.copy(...)
// I will use setTimeout to simulate these jobs
setTimeout(function() {
cb();
}, 3000);
}
// in tests.js file
it('...', function(done) {
someLongAsyncTasks(function(err) {
if (err) done(err);
else done();
});
});
あなたはsomeLongAsyncTasks()
はその仕事を終えるまで待つ必要がありますので、私はit()
のコールバック関数にdone
を渡している見ての通り。しかし、私はまだこのエラーが発生しています:
Error: Timeout of 30000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
何が欠けていますか? it()
が私の非同期機能と発射タイムアウトエラーを待っていないのはなぜですか?
また、問題のコードが実際に解決しようとしている問題を示していることを確認してください。 – robertklep