Привет, Синон! Спасибо, что предоставили отличную библиотеку с новыми классными функциями, добавленными в предварительную версию. Я использовал pre для недавно представленного API (я собирался написать расширение сам и обнаружил, что код копается в исходном коде), но выпуск .6 нарушил наш большой набор тестов.
Чего вы ожидали?
Я не ожидал, что утверждение .deep.equals
завершится ошибкой, когда был передан другой, но "равный" экземпляр ошибки.
Что на самом деле происходит
Для любого подкласса Error
deep equals
делает точное equals
. https://github.com/sinonjs/sinon/blob/master/lib/sinon/util/core/deep-equal.js#L54 -L56
Всем привет!
Это действительно что-то простое для решения, и я готов устроить для этого пиар. Однако я хотел бы предложить другой подход, отличный от простого исправления этого предложения if
.
В Chai
у нас есть модуль под названием deep-eql
который выполняет глубокую проверку равенства. Он был тщательно протестирован, настроен на производительность и отлично работает на ядре Chai.
Приняв ту же библиотеку, мы также будем работать над той же кодовой базой в будущем, чтобы улучшить ее и сделать лучше для каждого проекта, использующего ее.
Кроме того, он по-прежнему позволяет нам использовать метод use
из-за аргумента comparator
принимает эта библиотека .
Если вы не хотите принимать его, это тоже нормально, но я просто подумал о том, чтобы предложить его, прежде чем решать эту проблему.
@lucasfcosta Предлагаемое решение мне нравится. Было бы немного сложно уговорить match
чтобы он стал вариантом компаратора ... но похоже, что вам нравятся проблемы;)
Я бы хотел увидеть PR, который уменьшит размер кодовой базы.
Эта проблема была автоматически помечена как устаревшая, поскольку в последнее время не было активности. Он будет закрыт, если больше не будет активности. Спасибо за ваш вклад.
Самый полезный комментарий
Всем привет!
Это действительно что-то простое для решения, и я готов устроить для этого пиар. Однако я хотел бы предложить другой подход, отличный от простого исправления этого предложения
if
.В
Chai
у нас есть модуль под названиемdeep-eql
который выполняет глубокую проверку равенства. Он был тщательно протестирован, настроен на производительность и отлично работает на ядре Chai.Приняв ту же библиотеку, мы также будем работать над той же кодовой базой в будущем, чтобы улучшить ее и сделать лучше для каждого проекта, использующего ее.
Кроме того, он по-прежнему позволяет нам использовать метод
use
из-за аргументаcomparator
принимает эта библиотека .Если вы не хотите принимать его, это тоже нормально, но я просто подумал о том, чтобы предложить его, прежде чем решать эту проблему.