Javascript 如何让QUnit等待一定的时间间隔?

Javascript 如何让QUnit等待一定的时间间隔?,javascript,settimeout,qunit,Javascript,Settimeout,Qunit,我在QUnit中定义了几个测试用例。最后一个测试用例使用window.open函数在一个新窗口中打开一个特定的URL,并将新打开页面的body标记的html内容附加到当前页面的body标记上,测试将在该页面上运行。 另外,我需要在所有其他测试用例执行的最后执行该测试用例。我可以通过将属性QUnit.config.reorder设置为false来实现这一点 问题在于,我需要等待直到新页面加载到新窗口中,然后再复制主体HTMLCA,因为加载页面需要时间。为此,我使用setTimeout在3000ms

我在QUnit中定义了几个测试用例。最后一个测试用例使用window.open函数在一个新窗口中打开一个特定的URL,并将新打开页面的body标记的html内容附加到当前页面的body标记上,测试将在该页面上运行。 另外,我需要在所有其他测试用例执行的最后执行该测试用例。我可以通过将属性QUnit.config.reorder设置为false来实现这一点


问题在于,我需要等待直到新页面加载到新窗口中,然后再复制主体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();
        });        
  });