在Node.js中济锄,可以利用assert模塊進行斷言處理暑椰,即書寫一些判斷用測試代碼,如果判斷結果為假拟淮,則拋出AssertionError異常干茉。
判斷兩個值是否相等
assert.equal(actual, expected, [message])
- actual:實際值
- expected:預期值
- message:自定義異常信息
判斷兩個值不相等
assert.notEqual(actual, expected, [message])
- actual:實際值
- expected:預期值
- message:自定義異常信息
equal方法與notEqual方法僅對兩個值進行比較判斷谴忧,并不連同兩個值的數(shù)據(jù)類型一起判斷很泊。
判斷兩個值是否相等并且數(shù)據(jù)類型相等
如果需要對兩個值及其數(shù)據(jù)類型是否相等進行判斷,則需要使用strictEqual方法(在Node.js內部使用“===”操作符進行判斷)
assert.strictEqual(actual, expected, [message])
判斷兩個值不相等或者數(shù)據(jù)類型不相等
assert.notStrictEqual(actual, expected, [message])
直接判斷某個值是否為真
assert.ok(value, [message])
深層次比較相等
assert.deepEqual(actual, expected, [message])
深層次比較不相等
assert.notDeepEqual(actual, expected, [message])
判斷該函數(shù)中是否會拋出一個異常
throws方法用于執(zhí)行一個函數(shù)中的代碼并判斷該函數(shù)中是否會拋出一個異常沾谓,如果判斷結果為真(函數(shù)中拋出異常)委造,則不拋出AssertionError異常,如果判斷為假(函數(shù)中不拋出異常)均驶,則拋出AssertionError異常昏兆。
assert.throws(block, [error], [message])
- block:一個函數(shù)
- error:為一個返回true或返回false的函數(shù),用于控制是否拋出在第一個參數(shù)值函數(shù)中指定拋出的異常妇穴,如果第二個參數(shù)值返回false爬虱,則拋出該異常
- message:用于在AssertionError異常中添加一個附加的自定義錯誤信息(僅在拋出AssertionError異常時有效),可以不書寫第二個參數(shù)而直接指定第三個參數(shù)
doesNotThrow方法用于執(zhí)行一個函數(shù)中的代碼并判斷該函數(shù)是否不會拋出一個異常腾它,如果判斷為真(函數(shù)中不拋出異常)跑筝,則正常執(zhí)行該函數(shù),如果判斷為假(函數(shù)中拋出異常)瞒滴,則拋出該異城#或AssertionError異常(根據(jù)doesNotThrow方法中的第二個參數(shù)而定)。
assert.doesNotThrow(block, [error], [message])