我有一个异步的QUnit测试,如果操作超时,测试应该通过。 (我正在测试,如果省略一个可选的errorCallback
并做一些会引发错误的事情,那么无论你等多久都没有任何反应。)
我该怎么做?如果我使用Qunit.config.testTimeout
,则测试将在超时时失败。我想设置超时并在达到超时时让测试成功。
答案 0 :(得分:5)
为什么不进行setTimeout
通话,让测试成功?
e.g:
expect(1);
stop();
doOperation(function () {
start();
ok(false, "should not have come back");
});
setTimeout(function () {
start();
ok(true);
}, timeoutValue);
答案 1 :(得分:0)
这就是我在这些情况下的做法(大致):
function timeout(assert,to,error){
var done = assert.async();
var a = setTimeout(function(){
assert.equal(to,undefined,error);
done();
},to);
return function(){
done();
clearTimeout(a);
};
}
然后你可以:
...
var done = timeout(assert,2000,"not joined");
r.join(function(data){
assert.ok(true,"join confirmed");
done();
})
您可以timeout
功能timeout(assert,to,toCB)
并执行toCB
而不是我的假assert.equal