Как использовать включить в чай?

1

Я пытаюсь понять, как я могу передать объект и просто проверить, находится ли объект в ответе, используя это that.includes или to.include from to.include

Я написал простую скрипту, чтобы проверить мою проблему:

https://jsfiddle.net/balexandre/4Loupnjk/2/

https://jsfiddle.net/balexandre/4Loupnjk/5/ с флагом .deep

var e = {
  "results":  {
    "total_rejected_recipients": 0,
    "total_accepted_recipients": 1,
    "id":"102618457586465882"
  }
};

из моего понимания, e объект должен иметь меньший объект, включенный... или я что-то упускаю?

expect(e).to.include({
  "results":  {
    "total_rejected_recipients": 0,
    "total_accepted_recipients": 1
    }
});

но я получаю ошибку:

assertionError: expected { Object (results) } to have property 'results' of { Object (total_rejected_recipients, total_accepted_recipients) }, but got { Object (total_rejected_recipients, total_accepted_recipients, ...) }
at Context.<anonymous> (:73:18)

Первый раз на этой структуре, возможно, проблема:

Теги:
mocha
chai

1 ответ

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

Прежде всего, вы должны использовать утверждение deep.include, так как у вас есть глубокий объект.

В любом случае, похоже, что это ошибка. GitHub билет, где это реализовано находится здесь и соответствующая совершить здесь.

Тестовое покрытие для этого утверждения приведено здесь:

expect({foo: obj1, bar: obj2}).to.deep.include({foo: {a: 1}});
expect({foo: obj1, bar: obj2}).to.deep.include({foo: {a: 1}, bar: {b: 2}});
expect({foo: obj1, bar: obj2}).to.not.deep.include({foo: {a: 9}});
expect({foo: obj1, bar: obj2}).to.not.deep.include({foo: {z: 1}});
expect({foo: obj1, bar: obj2}).to.not.deep.include({baz: {a: 1}});
expect({foo: obj1, bar: obj2}).to.not.deep.include({foo: {a: 1}, bar: {b: 9}});

Однако он разбивается на следующий сценарий:

expect({ foo: obj1, bar: obj2 }).to.deep.include({ foo: { a: 1 }, bar: { } });

Лучше открыть проблему в репозитории chai и временно использовать пакет chai-subset.

  • 0
    создал # 983, так как даже с .deep прежнему выдает ту же ошибку :( но спасибо, чтобы указать мне, что я оставил позади.

Ещё вопросы

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