Spec-Zone.ru › Sinon.JS 1

Заглушки таймеров

Заглушки таймеров — это синхронные реализации 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API