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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。