ここに私が書いた主張があります
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
、テストが失敗したことを環境に知らせることであることに注意してください。