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();
}
);
});