assert.notDeepEqual(actual, expected[, message])
版本历史
| 版本 | 变更 |
|---|---|
| v16.0.0, v14.18.0 | 在旧版断言模式下,状态从弃用更改为旧版。 |
| v14.0.0 | 如果双方都是 NaN,则现在 NaN 被视为相同。 |
| v9.0.0 | 现在可以正确地比较 |
| v8.0.0 | 也比较 |
| v6.4.0, v4.7.1 | 现在可以正确地处理类型化数组切片。 |
| v6.1.0, v4.5.0 | 现在可以将具有循环引用的对象用作输入。 |
| v5.10.1, v4.4.3 | 正确地处理非 |
| v0.1.21 | 新增于: v0.1.21 |
严格断言模式
\Strict assertion mode
assert.notDeepStrictEqual() 的别名。
\An alias of assert.notDeepStrictEqual().
旧版断言模式
\Legacy assertion mode
assert.notDeepStrictEqual()。\Stability: 3 - Legacy: Use assert.notDeepStrictEqual() instead.
测试任何深度不相等。assert.deepEqual() 的相反。
\Tests for any deep inequality. Opposite of assert.deepEqual().
import assert from 'node:assert'; const obj1 = { a: { b: 1, }, }; const obj2 = { a: { b: 2, }, }; const obj3 = { a: { b: 1, }, }; const obj4 = { __proto__: obj1 }; assert.notDeepEqual(obj1, obj1); // AssertionError: { a: { b: 1 } } notDeepEqual { a: { b: 1 } } assert.notDeepEqual(obj1, obj2); // OK assert.notDeepEqual(obj1, obj3); // AssertionError: { a: { b: 1 } } notDeepEqual { a: { b: 1 } } assert.notDeepEqual(obj1, obj4); // OKconst assert = require('node:assert'); const obj1 = { a: { b: 1, }, }; const obj2 = { a: { b: 2, }, }; const obj3 = { a: { b: 1, }, }; const obj4 = { __proto__: obj1 }; assert.notDeepEqual(obj1, obj1); // AssertionError: { a: { b: 1 } } notDeepEqual { a: { b: 1 } } assert.notDeepEqual(obj1, obj2); // OK assert.notDeepEqual(obj1, obj3); // AssertionError: { a: { b: 1 } } notDeepEqual { a: { b: 1 } } assert.notDeepEqual(obj1, obj4); // OK
如果值深度相等,则会抛出 AssertionError,其 message 属性设置为等于 message 参数的值。如果未定义 message 参数,则分配默认错误消息。如果 message 参数是 <Error> 的实例,则将抛出该参数而不是 AssertionError。
\If the values are deeply equal, an AssertionError is thrown with a
message property set equal to the value of the message parameter. If the
message parameter is undefined, a default error message is assigned. If the
message parameter is an instance of <Error> then it will be thrown
instead of the AssertionError.