Тестирование избыточного ConnectedComponent - PullRequest
0 голосов
/ 20 января 2019

Я пытался протестировать ConnectedComponent в редуксе.Но я не могу ужиться с этим.Когда я передаю хранилище в ConnectedComponent в качестве хранилища, я получаю эту ошибку:

Инвариантное нарушение: передача избыточного хранилища в реквизитах удалена и ничего не делает.Чтобы использовать пользовательское хранилище Redux для определенных компонентов, создайте пользовательский контекст React с помощью React.createContext () и передайте объект контекста провайдеру React-Redux и определенным компонентам, таким как:.Вы также можете передать параметр {context: MyContext} для подключения

Мой тест:

const store = storeFactory({ success: true });
test('renders component without error', () => {
  const wrapper = shallow(<Input store={store} />);

  expect(wrapper.props()).toBe({});
});

Я использую вспомогательную функцию, которая создает хранилище:

export const storeFactory = initialState => {
  return createStore(rootReducer, initialState);
};

Я использую следующие версии пакетов:

"react-redux": "^6.0.0",
"redux": "^4.0.1",
"enzyme": "^3.8.0",
"enzyme-adapter-react-16": "^1.7.1",
"enzyme-redux": "^0.2.1",
"jest": "^23.6.0",
"jest-enzyme": "^7.0.1"

Я не знаю, как проверить ConnectedComponent.Пожалуйста, если у вас есть какие-либо решения или предложения для этой ситуации, поделитесь им со мной))

1 Ответ

0 голосов
/ 20 января 2019

Да, в React-Redux v6, мы убрали возможность передавать store в качестве опоры для подключенных компонентов из-за изменений внутренней архитектуры.

Я буду честени сказать, что поверхностный рендеринг подключенного компонента кажется мне бессмысленным, потому что все, что вы на самом деле тестируете, это то, что connect вызывает ваши mapState и mapDispatch и передает объединенные результаты вашему собственному компоненту.У нас уже есть тесты для React-Redux, которые проверяют это поведение:)

Однако, похоже, есть люди, которые хотят это сделать.У нас есть открытый вопрос, чтобы обсудить, как мы можем помочь в случае использования «мелкий + подключенный» .Отсутствие ETA по конкретным изменениям в API, но, пожалуйста, следите за этим вопросом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...