Поддельный таймер SinonJS не работает с QUnit - PullRequest
3 голосов
/ 29 июля 2011

Я использую следующий код с 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.

Есть идеи?

Спасибо

1 Ответ

1 голос
/ 30 апреля 2014

jQuery использует window.webkitRequestAnimationFrame или window.mozRequestAnimationFrame вместо setInterval.

Если вы установите window.mozRequestAnimationFrame в значение false перед загрузкой jQuery, он будет правильно использовать setTimeout, и SinonJS будет работать правильно.*

...