Каковы случаи, когда should.deep.equal не удается, но сравнение с использованием JSON.stringify работает нормально?

0

Функция возвращает массив объектов. Когда я сравниваю фактический результат с ожидаемым результатом, используя JSON.stringify значения идентичны. Однако сравнение с использованием should.deep.equal или _.isEqual терпит неудачу. Кто-нибудь имел такую проблему?

  • 1
    Не могли бы вы добавить несколько примеров объектов к вашему вопросу?
  • 1
    Я не знаком с should.js , но возможно ли, что они проверяют не только значения, но и ссылки? Вопрос подчеркивания, кажется, такой же, как этот вопрос SO .
Теги:
unit-testing
chai
should.js

1 ответ

0
Лучший ответ

Я понял, в чем проблема. Это связано с тем, что JSON.stringify пропускает поля с undefined значениями. Например, результат применения JSON.stringify к следующему объекту {field: 'value', undefinedField: undefined} - {"field": "value"}. следовательно

JSON.stringify({field: 'value', undefinedField: undefined}) === JSON.stringify({field: 'value'})'

Но

{field: 'value', undefinedField: undefined}.should.deep.equal({field: 'value'})

терпит неудачу

Ещё вопросы

Сообщество Overcoder
Наверх
Меню