# 斷言 (assert)
~~~
穩定度: 5 - 已鎖定
~~~
該模塊用于編寫程序的單元測試用例,通過require('assert')調用
### assert.fail(actual, expected, message, operator)
拋出一個異常,顯示用例的實際值(actual)和期望值(expected),通過分隔符(operator)隔開。
### assert(value, message), assert.ok(value, [message])
測試結果是否為真(true),相當于 `assert.equal(true, !!value, message);`
### assert.equal(actual, expected, [message])
淺測試,等同于使用'=='進行相等判斷
### assert.notEqual(actual, expected, [message])
淺測試,等同于使用'!='進行不相等判斷
### assert.deepEqual(actual, expected, [message])
深度匹配測試
### assert.notDeepEqual(actual, expected, [message])
非深度匹配測試
### assert.strictEqual(actual, expected, [message])
嚴格相等匹配測試,等同用'==='判斷匹配
### assert.notStrictEqual(actual, expected, [message])
不嚴格相等測試,等同于使用'!=='判斷不匹配
### assert.throws(block, [error], [message])
聲明一個block用于拋出錯誤,'error'可以是構造函數,驗證函數或者正則表達式
用構造函數驗證實例
~~~
assert.throws(
function() {
throw new Error("Wrong value");
},
Error
);
~~~
用正則表達式驗證信息錯誤
~~~
assert.throws(
function() {
throw new Error("Wrong value");
},
/value/
);
~~~
自定義錯誤校驗:
~~~
assert.throws(
function() {
throw new Error("Wrong value");
},
function(err) {
if ( (err instanceof Error) && /value/.test(err) ) {
return true;
}
},
"unexpected error"
);
~~~
### assert.doesNotThrow(block, [message])
聲明模塊不拋出錯誤,詳見 assert.throws
### assert.ifError(value)
測試值是否不為 false,當為 true 時拋出。常用于回調中第一個 error 參數的檢查。