assert.async()
追加されたバージョン: 1.16.0.
説明
async( count = 1 )
QUnitに非同期操作を待つように指示します。
| 名前 | 説明 | 
|---|---|
| count(数値) | 予期される呼び出し数。デフォルトは 1。 | 
assert.async()はコールバック関数と一時停止を処理し、テスト処理がコールバック関数が呼び出されるまで一時停止します。コールバックは、必要な呼び出し回数より多く呼び出されるとエラーをスローします。
関連項目
- 移行ガイドQUnit 1.x stop()とstart()から。
例
コールバックを待つ
コールバックからのdone()呼び出しを待つようQUnitに指示します。
function fetchDouble (num, callback) {
  const double = num * 2;
  callback(double);
}
QUnit.test('async example', assert => {
  const done = assert.async();
  fetchDouble(21, res => {
    assert.strictEqual(res, 42, 'Result');
    done();
  });
});
複数のコールバックを待つ
assert.async()を複数回呼び出して、複数の非同期操作を待ちます。各doneコールバックはテストに合格するために正確に1回呼び出す必要があります。
QUnit.test('two async calls', assert => {
  const done1 = assert.async();
  const done2 = assert.async();
  fetchDouble(3, res => {
    assert.strictEqual(res, 6, 'double of 3');
    done1();
  });
  fetchDouble(9, res => {
    assert.strictEqual(res, 18, 'double of 9');
    done2();
  });
});
複数の呼び出しを要求
countパラメータを使用して、同じコールバックへの複数の呼び出しを要求できます。以下の例では、テストは正確に3回の呼び出し後に合格します。
function uploadBatch (batch, notify, complete) {
  batch.forEach((item) => {
    // Do something with item
    notify();
  });
  complete(null);
}
QUnit.test('multiple calls example', assert => {
  assert.timeout(1000);
  const notify = assert.async(3);
  const done = assert.async();
  uploadBatch(
    ['a', 'b', 'c'],
    notify,
    (err) => {
      assert.strictEqual(err, null, 'complete error parameter');
      done();
    }
  );
});