Javascript 如何让QUnit等待一定的时间间隔?
我在QUnit中定义了几个测试用例。最后一个测试用例使用window.open函数在一个新窗口中打开一个特定的URL,并将新打开页面的body标记的html内容附加到当前页面的body标记上,测试将在该页面上运行。 另外,我需要在所有其他测试用例执行的最后执行该测试用例。我可以通过将属性QUnit.config.reorder设置为false来实现这一点Javascript 如何让QUnit等待一定的时间间隔?,javascript,settimeout,qunit,Javascript,Settimeout,Qunit,我在QUnit中定义了几个测试用例。最后一个测试用例使用window.open函数在一个新窗口中打开一个特定的URL,并将新打开页面的body标记的html内容附加到当前页面的body标记上,测试将在该页面上运行。 另外,我需要在所有其他测试用例执行的最后执行该测试用例。我可以通过将属性QUnit.config.reorder设置为false来实现这一点 问题在于,我需要等待直到新页面加载到新窗口中,然后再复制主体HTMLCA,因为加载页面需要时间。为此,我使用setTimeout在3000ms
问题在于,我需要等待直到新页面加载到新窗口中,然后再复制主体HTMLCA,因为加载页面需要时间。为此,我使用setTimeout在3000ms之后获取body标记的html内容,但同时QUnit未能通过测试,因为setTimeout处理程序函数中存在断言。读取上的文档
QUnit.test( "post an object for dup detection ", function( assert ) {
var done = assert.async();
$.ajax({
method : "POST",
url : ... ,
data : ... ,
dataType : "json"
}).done( function( data, textStatus, jqXHR){
assert.whatever();
done();
}).fail(function(jqXHR, textStatus, errorThrown){
assert.notOk();
console.log(errorThrown);
done();
});
});
您可以将Qunit测试与异步断言一起使用,例如:
QUnit.test( "post an object for dup detection ", function( assert ) {
var done = assert.async();
$.ajax({
method : "POST",
url : ... ,
data : ... ,
dataType : "json"
}).done( function( data, textStatus, jqXHR){
assert.whatever();
done();
}).fail(function(jqXHR, textStatus, errorThrown){
assert.notOk();
console.log(errorThrown);
done();
});
});