Когда вы просмотрите документацию Chai для .deep
функций, вы получите довольно четкое описание:
Вызывает все .equal, .include,. утверждения members, .keys и .property, которые следуют в цепочке, чтобы использовать глубокое равенство вместо строгого (===) равенства.
Когда вы используете equal
, Chai использует ===
сравнение. Поэтому при сравнении объектов Chai будет проверять ссылку .
Когда вы используете deepEqual
, Chai будет go вниз по иерархии объектов и сравнит каждое значение из каждое свойство.
Пример:
const a = {"a": "a"};
const b = {"a": "a"};
expect(a).to.equal(b); // false, as a refers to a different object than b
expect(a).to.deep.equal(b); // true, as the value of every property of a and b equals