Assert 断言
assert 断言
assert 模块提供了断言测试的函数,用于测试不变式。
assert(value[,message]) assert.ok()的别名。
assert.deepEqual(actual, expected[, message]) 测试 actual 参数与 expected 参数是否深度相等。原始值使用相等运算符 (==) 比较。
只测试可枚举的自身属性,不测试对象的原型、连接符、或不可枚举的属性(这些情况使用 assert.deepStrictEqual())。
Map 和 Set 包含的自相也会被测试。 子对象中可枚举的自身属性也会被测试:
如果两个值不相等,则抛出一个带有 message 属性的 AssertionError,其中 message 属性的值等于传入的 message 参数的值。 如果 message 参数为 undefined,则赋予默认的错误信息。
assert.deepStrictEqual(actual, expected[, message])
与 assert.deepEqual() 大致相同,但是有一些区别:
原始值使用 全等运算符(===)比较。 Set 的值与 Map 的键使用 SameValueZero 比较。
对象的原型也是用全等运算符 比较
对象的类型标签要求相同
Object wrappers are compared both as objects and unwrapped values.
如果两个值不相等,则抛出一个带有 message 属性的 AssertionError,其中 message 属性的值等于传入的 message 参数的值。 如果 message 参数为 undefined,则赋予默认的错误信息。
assert.doesNotThrow(block[, error][, message])
断言 block 函数不会抛出错误。 当 assert.doesNotThrow() 被调用时,他会立即调用 block 函数。 如果抛出错误且错误类型与 error 参数指定的相同,则抛出 AssertionError。 如果错误类型不相同,或 error 参数为 undefined, 则抛出错误。
assert.fail(actual, expected[, message[, operator[,stackStartFunction]]])
抛出 AssertionError
assert.ifError(value) 如果 value 为真,则抛出 value。 可用于测试回调函数的 error 参数
assert.notDeepEqual(actual, expected[, message])
assert.ok(value[, message])
assert.throws(block[, error][, message]) 断言 block 函数会抛出错误
注意事项
对于 SameValueZero 比较, 建议使用 ES2015 的 Object.is();
Last updated