Assert 断言

此模块是用来编写单元测试的,你可以使用require(‘assert’)访问该模块。

assert.fail(actual, expected, message, operator)

此函数使用参数operator 测试actual 和expected 是否相等。

assert.ok(value, [message])

测试参数value 是否为true,此函数和assert.equal(true, value, message)等价。

assert.equal(actual, expected, [message])

此函数为简便测试函数,使用操作符‘==’比较actual 和expected 是否相等。

assert.notEqual(actual, expected, [message])

此函数为简便测试函数,使用操作符’!=‘比较actual 和expected 是否相等。

assert.deepEqual(actual, expected, [message])

执行深度比较是否相等。
译注:三种比较的不同之处(感谢tytsim):

  1. a = {'a':'1','b':'2'};
  2. b = {'b':'2','a':'1'};
  3. equal(a, b) 返回false
  4. deepEqual(a, b) 返回true
  5. strictEqual(a, b) 返回false

assert.notDeepEqual(actual, expected, [message])

深度比较是否不相等。

assert.strictEqual(actual, expected, [message])

此函数使用操作符‘===’严格比较是否两参数相等。

assert.notStrictEqual(actual, expected, [message])

此函数使用操作符‘!==’严格比较是否两参数不相等。

assert.throws(block, [error], [message])

测试代码块,期待其抛出异常。

assert.doesNotThrow(block, [error], [message])

测试代码块,期待其不抛出异常。

assert.ifError(value)

判断参数value 是否为false,如果为true 则抛出异常。通常用在回调函数中判断是否发生了错误。
译著,实现代码: assert.ifError = function (err) { if (err) {throw err; }};