У меня проблемы с тестированием функции window.setInterval в моем файле Javascript. Ниже приведен сценарий ... в основном у меня есть функция setInterval в функции, которую я хочу проверить:
var dummy = false; // global variable not set anywhere else
var INTERVAL_TIME = 20; // global variable not set anywhere else
function myFunction()
{
var id = window.setInterval(function() {
if (...)
{
window.clearInterval(id);
}
else
{
if(...)
{
dummy = true;
}
}
}, INTERVAL_TIME);
}
И у меня есть следующий тестовый код в JsTestDriver:
TestMyFunction.prototype.test_myFunction() {
myFunction();
assertTrue(dummy);
}
Каждый раз, когда выполняется тест, он терпит неудачу и говорит, что фиктивный элемент равен false, как если бы вся функция setInterval никогда не вызывалась. Я пытался играть с интервалом безуспешно. Если я добавлю предупреждение в предложении else, оно появится через доли секунды и исчезнет (и тест все равно не пройден).
Код работает. У меня такое ощущение, что это проблема синхронизации, когда тест завершается раньше, чем функция setInterval, поэтому я жалуюсь, что для фиктивного значения не задано значение true. Любые предложения / решения этой проблемы?
Спасибо.