2011-07-29 2 views
3

Я бег следующего кода с SinonJS и QUnit: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.

Любые идеи?

Спасибо

+0

Пример jsfiddle/jsbin поможет понять это. –

+0

В итоге я отправил вопрос в проект SinonJS github: https://github.com/cjohansen/Sinon.JS/issues/30 Вот jsfiddle с проблемой и уродливым обходным решением: http://jsfiddle.net/ VCMAc / – simao

ответ

1

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

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

Смежные вопросы