assert.pushResult()
添加版本:1.22.0.
描述
pushResult( data )
报告自定义断言的结果。
名称 | 描述 |
---|---|
data.result (布尔值) |
断言的结果 |
data.actual |
正在测试的表达式 |
data.expected |
已知的比较值 |
data.message (字符串或未定义) |
断言的简短描述 |
示例
如果您需要表达一个没有被 QUnit 内置断言抽象的期望,您可以在表达式中执行自己的逻辑,然后将两个可以直接比较的值传递给 assert.strictEqual()
,或者将您自己的代表性布尔值结果传递给 assert.true()
。
QUnit.test('bad example of remainder', assert => {
const result = 4;
const actual = (result % 3) === 2;
assert.true(actual, 'remainder');
// In case of failure:
// > Actual: false
// > Expected: true
//
// No mention of the actual remainder.
// No mention of the expected value.
});
QUnit.test('good example of remainder', assert => {
const result = 4;
assert.strictEqual(result % 3, 2, 'remainder');
// In case of failure:
// > Actual: 1
// > Expected: 2
});
QUnit.test('bad example of between', assert => {
const actual = 3;
const isBetween = (actual >= 1 && actual <= 10);
assert.true(isBetween, 'result between 1 and 10');
// In case of failure:
// > Actual: false
// > Expected: true
//
// No mention of the actual remainder.
// No mention of the expected value.
// Cannot be expressed in a useful way with strictEqual()
});
自定义断言
使用自定义断言方法,您可以控制断言的评估方式,与在失败情况下如何描述其实际值和预期值分开。
例如
QUnit.assert.between = function (actual, from, to, message) {
const isBetween = (actual >= from && actual <= to);
this.pushResult({
result: isBetween,
actual: actual,
expected: `between ${from} and ${to} inclusive`,
message: message
});
};
QUnit.test('custom assertion example', assert => {
const result = 3;
assert.between(result, 1, 10, 'result');
// Example of failure if result is out of range
// > actual: 42
// > expected: between 1 and 10
});