addClassの最も単純なケースを期間でテストしようとしています(jQuery UIとJasmineを使用)。
失敗したテストは次のとおりです。
it("should use jquery ui", function() {
runs(function() {
expect(el.hasClass("fdsa")).toBeFalsy();
el.addClass("fdsa", 1000);
expect(el.hasClass("fdsa")).toBeFalsy();// this should not be failing, but it is
});
waits(1000);
runs(function() {
expect(el.hasClass("fdsa")).toBeTruthy();
});
});
私の期待は、1000ミリ秒が経過するまでクラスがないことです。ブラウザコンソールからこれをテストすると、このように動作します。
これは、私が使用した健全性チェックです(Jasmineブラウザーウィンドウでテスト済み)。
el = $($("div")[0]);
el.addClass("qwer", 1000);
console.log(el.hasClass("qwer")); // output is "false"
setTimeout( function(){
console.log(el.hasClass("qwer")); // output is "true"
}, 1001);
そして、これは常に機能します。WTF?