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()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。