Заглушки таймеров
Заглушки таймеров — это синхронные реализации setTimeout и родственных функций, которые Sinon.JS может переопределить в глобальных функциях, чтобы упростить тестирование кода, использующего их.
Заглушки таймеров предоставляют объект clock, чтобы пропустить время, который также может использоваться для управления объектами Date, созданными с помощью new Date(); или Date.now(); (если поддерживается браузером).
При использовании заглушек таймеров в IE также необходим sinon-ie.js, который должен быть загружен после sinon.js.
Для самостоятельного использования заглушек таймеров рекомендуется использовать пакет lolex. Он предоставляет тот же набор функций и ранее был выделен из Sinon.JS.
{
setUp: function () {
this.clock = sinon.useFakeTimers();
},
tearDown: function () {
this.clock.restore();
},
"test should animate element over 500ms" : function(){
var el = jQuery("<div></div>");
el.appendTo(document.body);
el.animate({ height: "200px", width: "200px" });
this.clock.tick(510);
assertEquals("200px", el.css("height"));
assertEquals("200px", el.css("width"));
}
}
API заглушек таймеров
var clock = sinon.useFakeTimers();
Приводит Sinon к замене глобальных setTimeout, clearTimeout, setInterval, clearInterval и Date на пользовательскую реализацию, связанную с возвращенным объектом clock.
Запускает таймер с отметкой времени эпохи Unix (0).
var clock = sinon.useFakeTimers(now);
Как и выше, но вместо запуска таймера с отметкой времени 0, начать с указанной отметки времени.
var clock = sinon.useFakeTimers([now, ]prop1, prop2, ...);
Устанавливает отметку времени начала таймера и имена функций для имитации. Возможные функции: setTimeout, clearTimeout, setInterval, clearInterval и Date. Может быть вызван и без отметки времени.
clock.tick(ms);
Передвинуть таймер на ms миллисекунд.
Вызывает все таймеры, запланированные в указанном диапазоне времени.
clock.restore();
Восстановить имитированные методы.
Вызвать, например, в tearDown.
© 2010–2017 Christian Johansen
Licensed under the BSD License.
http://sinonjs.org/releases/v1.17.7/fake-timers