assert.async()
添加的版本:1.16.0
說明
async( count = 1 )
指示 QUnit 等待異步操作。
名字 | 說明 |
---|---|
count (數字) |
測試將恢複之前的預期調用次數。默認為 1 。 |
assert.async()
返回一個回調函數並暫停測試處理,直到回調函數被調用。如果調用的次數超過所需的調用次數,回調將拋出 Error
。
這取代了以前由 QUnit.stop()
和
提供的函數。QUnit.start()
例子
等待回調
告訴 QUnit 等待來自回調的 done()
調用。
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
回調必須隻調用一次才能通過測試。
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
參數可用於要求對同一回調進行多次調用。在下麵的示例中,測試在恰好三個調用之後通過。
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();
}
);
});
相關用法
- JavaScript assert.expect()用法及代碼示例
- JavaScript assert.rejects()用法及代碼示例
- JavaScript assert.propContains()用法及代碼示例
- JavaScript assert.notPropContains()用法及代碼示例
- JavaScript assert.timeout()用法及代碼示例
- JavaScript assert.deepEqual()用法及代碼示例
- JavaScript assert.propEqual()用法及代碼示例
- JavaScript assert.notDeepEqual()用法及代碼示例
- JavaScript assert.pushResult()用法及代碼示例
- JavaScript assert.notPropEqual()用法及代碼示例
- JavaScript assert.strictEqual()用法及代碼示例
- JavaScript assert.notEqual()用法及代碼示例
- JavaScript assert.notOk()用法及代碼示例
- JavaScript assert.throws()用法及代碼示例
- JavaScript assert.equal()用法及代碼示例
- JavaScript assert.verifySteps()用法及代碼示例
- JavaScript assert.false()用法及代碼示例
- JavaScript assert.ok()用法及代碼示例
- JavaScript assert.true()用法及代碼示例
- JavaScript assert.notStrictEqual()用法及代碼示例
- JavaScript assert.step()用法及代碼示例
- JavaScript array.length屬性用法及代碼示例
- JavaScript esri/layers/OpenStreetMapLayer.minScale用法及代碼示例
- JavaScript esri/layers/KMLLayer.maxScale用法及代碼示例
- JavaScript esri/widgets/Histogram.labelFormatFunction用法及代碼示例
注:本文由純淨天空篩選整理自qunitjs.com大神的英文原創作品 assert.async()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。