📅  最后修改于: 2023-12-03 15:17:53.860000             🧑  作者: Mango
assert.deepEqual(actual, expected[, message])
是 Node.js 中的断言函数之一。它判断 actual
和 expected
是否深度相等。
具体来说,它会递归比较 actual
和 expected
中的每个属性和元素,如果它们在类型和值上都相等,则认为它们是相等的。
assert.deepEqual(actual, expected[, message])
参数说明:
actual
:要测试的实际值。expected
:期望的值。message
:可选参数,表示断言失败时输出的错误信息。const assert = require('assert');
const obj1 = {
a: {
b: 1
}
};
const obj2 = {
a: {
b: 2
}
};
const obj3 = {
a: {
b: 1
}
};
assert.deepEqual(obj1, obj1); // 通过
assert.deepEqual(obj1, obj2); // 失败
assert.deepEqual(obj1, obj3); // 通过
assert.deepEqual()
和 assert.deepStrictEqual()
的区别在于它们对待原始值(例如字符串和数字)和对象的方式不同。assert.deepEqual()
对待原始值时比较它们的值,对待对象时比较它们的属性和元素。而assert.deepStrictEqual()
对待原始值时比较它们的类型和值,对待对象时比较它们的属性和元素以及类型。assert.deepEqual()
会进入无限递归,导致堆栈溢出和性能问题。为避免这种情况,需要使用第三方库比如 fast-deep-equal。