这是我写的一个断言
assert.equal(0,0,"Test Passed);
我希望它会打印消息测试通过,但它没有发生。但是,如果断言失败,则消息将与错误一起显示。
那么如果测试成功,有什么方法可以打印消息吗?
这是我写的一个断言
assert.equal(0,0,"Test Passed);
我希望它会打印消息测试通过,但它没有发生。但是,如果断言失败,则消息将与错误一起显示。
那么如果测试成功,有什么方法可以打印消息吗?
根据消息来源,仅在断言失败时才打印该消息。
assert.equal = function equal(actual, expected, message) {
if (actual != expected) fail(actual, expected, message, '==', assert.equal);
};
为了完整起见,这里是 的定义fail
。
function fail(actual, expected, message, operator, stackStartFunction) {
throw new assert.AssertionError({
message: message,
actual: actual,
expected: expected,
operator: operator,
stackStartFunction: stackStartFunction
});
}
没有显示成功消息的内置功能。但是,由于assert
在失败时会引发错误(并且执行停止),因此在assert
调用后立即放置成功消息可以有效地实现相同的目的:
const assert = require('assert')
assert.deepStrictEqual(value, otherValue)
console.log('test passed') // unreachable if assert fails as it throws an error
try/catch
如果您希望继续执行,可以使用:
const tests = [
[0,1],
[1,1],
]
for (const [value, otherValue] of tests) {
try {
assert.deepStrictEqual(value, otherValue)
console.log(`Success: ${value} equals ${otherValue}`)
} catch(error) {
console.error(`Failure: ${value} does not equal ${otherValue}`)
}
}
// output:
// Failure: 0 does not equal 1
// Success: 1 equals 1
请注意,如果将其用于自动化测试,失败时所需的结果可能仍然是抛出错误或exit 1
让环境知道测试失败。