【发布时间】:2009-11-16 00:25:52
【问题描述】:
我在我的 Javascript 文件中测试 window.setInterval 函数时遇到了困难。下面是场景...基本上我在要测试的函数中有一个 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);
}
每次测试执行时,它都会失败并说 dummy 为 false,就好像从未调用过整个 setInterval 函数一样。我试着玩区间但没有成功。如果我在 else 子句中添加警报,它会在几分之一秒内弹出并消失(并且测试仍然失败)。
代码有效。我感觉这是一个时间问题,测试比 setInterval 函数更早完成,因此抱怨 dummy 未设置为 true。对此问题有什么建议/解决方案?
谢谢。
【问题讨论】: