Javascript QUnit异步测试停止功能isn';行不通
我对QUnit stop()有个问题,基本上它根本不起作用。下面是我正在尝试做的事情的一个例子: 如果删除该行:Javascript QUnit异步测试停止功能isn';行不通,javascript,jquery,iframe,load,qunit,Javascript,Jquery,Iframe,Load,Qunit,我对QUnit stop()有个问题,基本上它根本不起作用。下面是我正在尝试做的事情的一个例子: 如果删除该行: testIframe.remove(); 它工作正常,运行测试并通过 我假设调用stop()会停止测试执行(正如文档所说的那样),但情况似乎并非如此,因为在加载回调完成之前调用了remove() 如何确保在从页面中删除iframe之前运行测试 我不想将iframe remove放在回调中,因为我有几个这样的实例,如果我必须使每个实例彼此相等,那么会导致回调地狱 您可以尝试在拆除模块
testIframe.remove();
它工作正常,运行测试并通过
我假设调用stop()会停止测试执行(正如文档所说的那样),但情况似乎并非如此,因为在加载回调完成之前调用了remove()
如何确保在从页面中删除iframe之前运行测试
我不想将iframe remove放在回调中,因为我有几个这样的实例,如果我必须使每个实例彼此相等,那么会导致回调地狱 您可以尝试在拆除模块时进行拆除。这将等待调用start()方法并完成文本执行
QUnit.module("new test", {
setup: function () {
var testIframe = $('<iframe id="testiframe" src="/" />').appendTo("body");
testIframe.load(function() {
console.log('done loading iframe');
});
},
teardown: function () {
testIframe.remove();
}
});
QUnit.module(“新测试”{
设置:函数(){
var testIframe=$('').appendTo(“正文”);
testIframe.load(函数(){
log('done loading iframe');
});
},
拆卸:函数(){
testisframe.remove();
}
});
QUnit.stop只告诉QUnit在检查结果之前等待这么多毫秒。此外,如果iframe没有有效的src,则可能不会触发iframe加载事件。这在文档中不清楚,但
stop()
只确保在调用start()
之前不会启动测试的拆卸。在调用stop()
之后,它不会以任何方式延迟当前测试用例中的语句
您的问题的正确答案由jhorback提供;将拆卸件放入拆卸中