Какая польза от assert.equal () в библиотеке утверждений Chai, когда у нас уже есть assert.deepEqual () и assert.strictEqual ()? - PullRequest
0 голосов
/ 04 августа 2020

В библиотеке утверждений Chai какова польза от « assert.equal () », когда у нас уже есть « assert.deepEqual () » и « assert.strictEqual ()"для утверждений строгого и глубокого равенства? Также упоминается, что assert.equal () использует нестрогое равенство. В чем разница между нестрогим и глубоким равенством? Почему мы не можем просто использовать deepEqual вместо equal? ​​

1 Ответ

0 голосов
/ 04 августа 2020

Когда вы просмотрите документацию 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
...