调用QUnit's断言.多次Async函数
Calling QUnit's assert.async function multiple times
我使用QUnit来测试一个javascript库,我需要验证一个回调是否被调用了不止一次。根据QUnit文档(在http://api.qunitjs.com/async/),类似这样的简化测试用例应该可以工作:
QUnit.test("assert.async with argument", function (assert) {
var done = assert.async(3);
done();
done();
done();
});
然而,上面抛出异常,Called the callback returned from assert.async more than once
.
我不得不求助于构建done()函数数组,然后弹出每个函数并调用它。没那么好。
更新在将QUnit升级到2.0.1时,上面的代码将正常工作(对发出的0个断言的投诉取模)。我使用的是1.18版本
更新
OP在下面评论,他只需要升级QUnit!
…
我有一个JS小提琴,你可以看到这个异步工作(与setTimeout
)和一个没有(你的例子)。
下面是一个使用setTimeout
的例子(无论如何使用QUnit 2.0.1):
QUnit.test( "multiple call done()", function( assert ) {
var done = assert.async( 2 );
setTimeout(function() {
assert.ok( true, "first call done." );
done();
}, 500 );
setTimeout(function() {
assert.ok( true, "second call done." );
done();
}, 500 );
});
相关文章:
- /undefined在我的404错误日志中多次出现
- Google Adsense多次加载脚本
- ScriptManager.RegisterStartupScript保持多次添加脚本块
- 创建要多次使用的函数
- 多次发射多个可观察器的问题
- 当按下一个键时,请多次按下不同的键
- 多次调用另一个javascript函数中的javascript函数
- 在dhtmlx调度程序中多次触发OnEventSave
- 无法't在不使用Javascript刷新页面的情况下多次将值传递给文本框
- 如何防止多个ajax查询在“;prev“;按钮被点击多次
- 如何防止Angular方法多次激发
- 如何避免在angular上多次调用方法;s ng重复
- getSript在同一对象上多次添加处理程序
- 警报框在javascript上多次显示
- 多次运行相同的Javascript Chrome扩展
- 检查搜索结果是否存在多次如果是,则在Javascript中只显示一个结果
- 使用流星调用时,可以多次访问流星中的某个函数
- AngularJS:控制器中的函数被模板多次调用
- 单击即可进行多次更改
- 调用QUnit's断言.多次Async函数