Тестирование Redux связанного компонента с энзимом и шуткой - PullRequest
0 голосов
/ 17 февраля 2020

Я тестирую свое приложение React с шуткой и энзимом, и все хорошо, пока я не проверил компонент класса, связанный с Redux. Я пошел дальше и проверил его, обернув компонент с, а затем поверхностно установив его. Однако я не могу запускать утверждения после обновления реквизитов компонента, и я не могу шпионить за вызываемыми методами класса или нет.

Ниже приведен мой пример кода:

const wrapper = shallow(
    <Provider store={store}>
        <TestComponent {...props}  />
    </Provider>
).dive();

Теперь, когда я пытаюсь установить реквизиты обертки и выполнить утверждения, происходит сбой:

wrapper.setProps({
  showHeader:  true
})
expect(wrapper.find('h1')).toHaveLength(1);

Интересная часть, если я экспортирую неподключенный компонент, как и , предложенный в лексических документах Утверждения работают хорошо. Можно ли экспортировать неподключенный компонент только для тестирования? Я не могу шпионить за методами экземпляра / методами жизненного цикла, если я пытаюсь проверить подключенный компонент.

1 Ответ

0 голосов
/ 19 февраля 2020

Вы можете смоделировать функцию connect из react-redux, чтобы вернуть исходный компонент

jest.mock('react-redux', () => ({
   connect: () => Component => Component
}))

...