QUnit.test.each()
添加的版本:2.16.0
说明
QUnit.test.each( name, dataset, callback )
QUnit.test.only.each( name, dataset, callback )
QUnit.test.skip.each( name, dataset, callback )
QUnit.test.todo.each( name, dataset, callback )
使用数据提供者添加测试。
参数 | 说明 |
---|---|
name (字符串) |
被测单元的名称 |
dataset (数组) |
传递给每个测试用例的数据值的数组或对象 |
callback (函数) |
执行测试的函数 |
回调参数
参数 | 说明 |
---|---|
assert (对象) |
带有assertion methods 的新实例对象 |
data (任意) |
数据值 |
使用此方法添加多个相似的测试,但传入的数据不同。
QUnit.test.each()
在内部生成对
的多个调用,并且具有所有相同的函数,例如支持异步函数、返回 Promise 和 QUnit.test()
assert
参数。
每个测试用例都会传递一个数据集的值。
、 only
和 skip
变体也可用,分别为 todo
QUnit.test.only.each
、 QUnit.test.skip.each
和 QUnit.test.todo.each
。
例子
基本数据提供者
function isEven (x) {
return x % 2 === 0;
}
QUnit.test.each('isEven()', [2, 4, 6], (assert, data) => {
assert.true(isEven(data), `${data} is even`);
});
数组数据提供者
原始数组将传递给您的回调。 Array destructuring 可用于直接从回调签名中解包数据数组。
function square (x) {
return x * x;
}
QUnit.test.each('square()', [
[2, 4],
[3, 9]
], (assert, [value, expected]) => {
assert.equal(square(value), expected, `${value} squared`);
});
对象数据提供者
QUnit.test.each('isEven()', {
caseEven: [2, true],
caseNotEven: [3, false]
}, (assert, [value, expected]) => {
assert.strictEqual(isEven(value), expected);
});
each()
的异步函数
function isEven (x) {
return x % 2 === 0;
}
async function isAsyncEven (x) {
return new Promise(resolve => {
resolve(isEven(x));
});
}
QUnit.test.each('isAsyncEven()', [2, 4], async (assert, data) => {
assert.true(await isAsyncEven(data), `${data} is even`);
});
使用经典的 ES5 语法从每个回调中返回一个 Promise:
function isEven (x) {
return x % 2 === 0;
}
function isAsyncEven (x) {
return new Promise(function (resolve) {
resolve(isEven(x));
});
}
QUnit.test.each('isAsyncEven()', [2, 4], (assert, value) => {
return isAsyncEven(value).then((result) => {
assert.true(result, `${value} is even`);
});
});
相关用法
- JavaScript QUnit.test.only()用法及代码示例
- JavaScript QUnit.test.todo()用法及代码示例
- JavaScript QUnit.test.skip()用法及代码示例
- JavaScript QUnit.testStart()用法及代码示例
- JavaScript QUnit.test()用法及代码示例
- JavaScript QUnit.testDone()用法及代码示例
- JavaScript QUnit.config.filter用法及代码示例
- JavaScript QUnit.config.current用法及代码示例
- JavaScript QUnit.begin()用法及代码示例
- JavaScript QUnit.moduleStart()用法及代码示例
- JavaScript QUnit.on()用法及代码示例
- JavaScript QUnit.done()用法及代码示例
- JavaScript QUnit.stack()用法及代码示例
- JavaScript QUnit.dump.parse()用法及代码示例
- JavaScript QUnit.moduleDone()用法及代码示例
- JavaScript QUnit.onUncaughtException()用法及代码示例
- JavaScript QUnit.hooks用法及代码示例
- JavaScript QUnit.config.autostart用法及代码示例
- JavaScript QUnit.extend()用法及代码示例
- JavaScript QUnit.start()用法及代码示例
- JavaScript QUnit.log()用法及代码示例
- JavaScript QUnit.config.urlConfig用法及代码示例
- JavaScript QUnit.module()用法及代码示例
- JavaScript esri/layers/OpenStreetMapLayer.minScale用法及代码示例
- JavaScript esri/layers/KMLLayer.maxScale用法及代码示例
注:本文由纯净天空筛选整理自qunitjs.com大神的英文原创作品 QUnit.test.each()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。