Как протестировать компонент React, в котором есть Router, Redux и два HOC ... с Jest и Enzyme?

В настоящее время я не могу найти решение этой проблемы. У меня есть React Component, который подключен к React Router 4, хранилищу Redux и обернут двумя HOC. Это довольно сумасшедшее, но так оно и было закодировано. Вот экспорт, чтобы дать вам представление:

export default withFetch(Component)(fetchData, mapStateToProps)

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

  it('should render self and subcomponents', () => {
    const wrapper = shallow(<Component {...props} />)
    expect(toJson(wrapper)).toMatchSnapshot()
  })

Который выводит файл console.log /snapshot:

<Route render={[Function: render]} />

Вещи пытались, но безуспешно:

  1. Я пытался обернуть свой компонент в Memory Router
  2. Предоставьте избыточное хранилище для компонента
  3. Использовал .dive() и .chilndren() для попробуйте увидеть детей
  4. Пробовал mount и render с нет успеха

все еще продолжает рендеринг <Route render={[Function: render]} />

Пробовать:

<MemoryRouter>
    <Component {...props} />
</MemoryRouter>

Тем не менее дает тот же результат. Обратите внимание, что я также попытался импортировать свой компонент как

import { Component } from './components/'

Но он возвращает неопределенное.

Любая помощь очень ценится. Спасибо!

4 голоса | спросил Esther Cuan 11 Mayam18 2018, 07:38:04

1 ответ


0
Я предполагаю, что под ---- +: = 0 =: + ---- вы ссылаетесь на BrowserRouter.Лучший способ - изолировать упакованный компонент и протестировать его с помощью альтернативных вариантов тестирования.Например, предположим, что вы хотите проверить это:Мое предложение состоит в том, чтобы проверить ---- +: = 2 =: + ---- с тестированием env от Router & ReduxProvider.В тестах:Обратите внимание, что я обернул ---- +: = 4 =: + ---- с ---- +: = 5 =: + ---- , это позволяет ваш маршрутизатор мнемосхемы, но без зависимости отбраузер.Для получения дополнительной информации вы можете прочитать раздел ---- +: = 6 =: + ---- в ---- +: = 7 =: + ---- ;
ответил felixmosh 11 Mayam18 2018, 07:54:42

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132