javascriptでsetTimeoutの内部にある関数をテストするには?私のテストコードで
functionDoThings = function(){
doSomethingA();
setTimeout(function(){
doSoemthingB();
}, 1000);
}
、私は期待して(BCalled)が早すぎると呼ばれているので、それがある
testDoThings = function(){
var ACalled, BCalled = false;
doSomethingA() = function(){ACalled = true;};
doSoemthingB() = function(){BCalled = true;};
functionDoThings();
expect(ACalled).to.be.ok; //Passed
expect(BCalled).to.be.ok; //Fail
}
を持っています。 doSoemthingBがsetTimeout()の内部で呼び出されるのをテストするにはどうすればよいですか?
適切な非同期設計は、操作の非同期一部が行われ、どのような値またはエラーが返されたときに指示完了コールバックを持っている(または同じ目的を果たす約束を返す)になりますように見えます。表示するコードをテストできるようにするには、コールバックで結果を返すように修正する必要があります。さもなければ、テストコードは、いつ実行されたか、その結果が何であるか分かりません。 – jfriend00
定義される前に関数を呼び出す。 – Redu