Фермент мокко AssertionError: ожидается, что 0 будет равно 21

Написание некоторых модульных тестов для приложения и удар по стене в блоке описаний.

/* eslint-env mocha */
const React = require('react')
const chai = require('chai')
const { expect } = chai
const Search = require('../js/Search')
const ShowCard = require('../js/ShowCard')
const enzyme = require('enzyme')
const { shallow } = enzyme
const data = require('../public/data')

describe('<Search />', () => {
  it('should render as many shows as there are data for', () => {
    const wrapper = shallow(<Search />)
    expect(wrapper.find(ShowCard).length).to.equal(data.shows.length)
    console.log(wrapper.debug())
  })
})

Код в компоненте поиска отображает ShowCard следующим образом:

<div className='shows'>
  {data.shows
    .filter((show) => `${show.title} ${show.description}`.toUpperCase().indexOf(this.state.searchTerm.toUpperCase()) >= 0)
    .map((show, index) => (
      <ShowCard {...show} key={index} id={index} />
  ))}
</div>

(wrapper.find(ShowCard).length) должен равняться (data.shows.length), но это дает эту ошибку:

  <Search /> should render as many shows as there are data for:

  AssertionError: expected 0 to equal 21
  + expected - actual

  -0
  +21

  at Context.<anonymous> (App.spec.js:19:45)

Согласно вышеуказанной ошибке, проблема начинается с ожидания equal(data.shows.length) но я не вижу ничего плохого в этом. Может кто-то указать мне верное направление?

1 ответ

Решение

Вау, как неловко У меня было состояние входного значения конструктора Поиска, установленное на "условие поиска по умолчанию" - таким образом предотвращалось появление любых результатов поиска, пока эта строка не была удалена вручную из ввода.

замена на пустую строку решила проблему. все тесты сейчас проходят.

Другие вопросы по тегам