Chai deep.include выдает ошибку «Uncaught AssertionError: Ожидается ...» - PullRequest
0 голосов
/ 07 ноября 2019

Я запускаю тесты с Мокко и Чай . res.body.data это массив объектов. Когда я проверяю элемент массива напрямую с помощью to.include, он работает нормально, но не удается, когда я пытаюсь проверить весь массив с помощью to.deep.include. Я застрял, пожалуйста, помогите!

res.body.data = [{
  createdAt: 1573147796,
  id: "36d337d4-0184-11ea-acb9-0e4ed9667580",
  message: "Good",
  name: "John Doe",
  rate: 5
}]
//Running test

        expect(res.body.data).to.be.an('array');

        expect(res.body.data[0]).to.include({ //This works fine!
            message: "Good"
        });

        expect(res.body.data).to.deep.include({ //But this trows an error
           message: "Good"
         });
//Uncaught AssertionError: expected [ Array(1) ] to deep include { message: 'Good' }


        done();

1 Ответ

0 голосов
/ 12 ноября 2019

Deep.include проверяет массив строго , чтобы он имел член {message: "Good"}. Тест не пройден, если у целевого элемента массива есть другие поля. Спецификация имеет неправильное описание. Для проверки наличия в массиве объекта, который содержит { message: "Good" }

    expect(res.body.data.some((item) => item.message === "Good")).to.equal(true);

Тест проходит, когда хотя бы один элемент массива содержит { message: "Good" }

...