在Node.js中,可以利用assert模塊進行斷言處理,即書寫一些判斷用測試代碼,如果判斷結果爲假,則拋出AssertionError異常。
判斷兩個值是否相等
assert.equal(actual, expected, [message])
- actual:實際值
- expected:預期值
- message:自定義異常信息
判斷兩個值不相等
assert.notEqual(actual, expected, [message])
- actual:實際值
- expected:預期值
- message:自定義異常信息
equal方法與notEqual方法僅對兩個值進行比較判斷,並不連同兩個值的數據類型一起判斷。
判斷兩個值是否相等並且數據類型相等
如果需要對兩個值及其數據類型是否相等進行判斷,則需要使用strictEqual方法(在Node.js內部使用“===”操作符進行判斷)
assert.strictEqual(actual, expected, [message])
判斷兩個值不相等或者數據類型不相等
assert.notStrictEqual(actual, expected, [message])
直接判斷某個值是否爲真
assert.ok(value, [message])
深層次比較相等
assert.deepEqual(actual, expected, [message])
深層次比較不相等
assert.notDeepEqual(actual, expected, [message])
判斷該函數中是否會拋出一個異常
throws方法用於執行一個函數中的代碼並判斷該函數中是否會拋出一個異常,如果判斷結果爲真(函數中拋出異常),則不拋出AssertionError異常,如果判斷爲假(函數中不拋出異常),則拋出AssertionError異常。
assert.throws(block, [error], [message])
- block:一個函數
- error:爲一個返回true或返回false的函數,用於控制是否拋出在第一個參數值函數中指定拋出的異常,如果第二個參數值返回false,則拋出該異常
- message:用於在AssertionError異常中添加一個附加的自定義錯誤信息(僅在拋出AssertionError異常時有效),可以不書寫第二個參數而直接指定第三個參數
doesNotThrow方法用於執行一個函數中的代碼並判斷該函數是否不會拋出一個異常,如果判斷爲真(函數中不拋出異常),則正常執行該函數,如果判斷爲假(函數中拋出異常),則拋出該異常或AssertionError異常(根據doesNotThrow方法中的第二個參數而定)。
assert.doesNotThrow(block, [error], [message])