3

我正在使用 SinonJS 和 QUnit 运行以下代码:

var clock = this.sandbox.useFakeTimers();
var el = jQuery("<div></div>");
el.appendTo(document.body);

el.animate({ height: "200px", width: "200px" });
clock.tick(1000);

equals("200px", el.css("height"));
equals("200px", el.css("width"));

但是测试失败了,看起来 jQuery 使用的是真正的时钟而不是假的。

我正在使用 Chrome 12.0.742.122。

有任何想法吗?

谢谢

4

1 回答 1

1

jQuery 使用 window.webkitRequestAnimationFrame 或 window.mozRequestAnimationFrame 而不是 setInterval。

如果在加载 jQuery 之前将 window.mozRequestAnimationFrame 设置为 false,它将使用 setTimeout,SinonJS 将正常工作。

于 2014-04-30T17:20:37.983 回答