我正在尝试使用持续时间(使用 jQuery UI 和 Jasmine)测试最简单的 addClass 情况。
这是失败的测试:
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);
这总是有效的。怎么回事?