### 穩定度: 2 - 穩定
本模塊被用來為你的應用編寫單元測試,你可以通過`require('assert')`來使用它。
#### assert.fail(actual, expected, message, operator)
拋出一個打印實際值`actual`和期望值`expected`的異常,使用分隔符`operator`隔開。
#### assert(value[, message]), assert.ok(value[, message])
測試`value`是否為真,它等同于`assert.equal(true, !!value, message);`。
#### assert.equal(actual, expected[, message])
判等`actual`與`expected`是否相等,等同于使用`==`進行比較。
#### assert.notEqual(actual, expected[, message])
判斷`actual`與`expected`是否相等,等同于使用`!=`進行比較。
#### assert.deepEqual(actual, expected[, message])
深度判斷相等,通過比較`actual`與`expected`所有原型(prototype)之外的屬性是否相等(`==`)來判斷二者是否相等。
#### assert.notDeepEqual(actual, expected[, message])
深度判斷不相等,與`assert.deepEqual`的結果相反。
#### assert.strictEqual(actual, expected[, message])
判斷`actual`與`expected`是否“全等(`===`)”。
#### assert.notStrictEqual(actual, expected[, message])
判斷`actual`與`expected`是否“不全等(`!==`)”。
#### assert.deepStrictEqual(actual, expected[, message])
深度判斷全等,通過比較`actual`與`expected`所有原型(prototype)之外的屬性是否全等(`===`)來判斷二者是否相等。
#### assert.notDeepStrictEqual(actual, expected[, message])
深度判斷不全等,與`assert.deepStrictEqual`結果相反。
#### assert.throws(block[, error][, message])
期望`block`拋出一個`error`。`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])
期望`block`不拋出錯誤,詳情見`assert.throws`。
#### assert.ifError(value)
測試`value`是否為假,當`value`為真時會拋出異常。通常用來判斷回調函數中第一個`error`參數。