知识共享许可协议
本作品采用知识共享署名-非商业性使用 3.0 未本地化版本许可协议进行许可。

Node.js v4.2.4 手册 & 文档


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