# 断言 (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 参数的检查。