Как проверить время, указанное пользователем в setTimeout
Прямо сейчас у меня есть плагин jQuery, который добавляет некоторые дополнительные настройки (вокруг того, как обрабатывать возвращаемые данные в определенных контекстах) и опрашивает сервер на предмет информации и изменений. Одна из обязательных функций - позволить пользователю установить интервал опроса. setTimeout
(в паре с рекурсией) - это функция, используемая для создания постоянного опроса; это тоже требование.
Вот где я озадачен: наряду с необходимой функциональностью, отмеченной выше, я также должен проверить, действительно ли указанное пользователем значение использовалось в setTimeout. Как бы я поступил так с точки зрения QUnit?
Я уже обдумывал прямую синхронизацию функции с Date.getTime(), но то, как все настроено в данный момент, это не вариант.
1 ответ
Рассмотрите возможность рефакторинга кода таким образом, чтобы позволить вам переопределить метод, запускающий тайм-аут в вашем тесте, что позволит вам проверить, что передано правильное значение, без фактического запуска тайм-аута.
Если вам действительно нужно вызвать setTimeout, рассмотрите возможность использования sinon.js для макетирования самого setTimeout и управления тем, что он делает вместо этого.