多次调用 QUnit 的 assert.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 fiddle,您可以在其中看到它异步工作(使用 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 );
});