React Jest Enzyme: Невозможно передать параметр маршрутизатора - PullRequest
0 голосов
/ 31 января 2019

У меня есть компонент с именем AddEditVehicle, который отображается при маршруте /vehicle/:vehicleId/edit.

Мне нужно протестировать жизненные циклы React этого компонента.Поэтому я использовал Enzyme mount для визуализации моего компонента в модульном тесте следующим образом.

beforeEach(async () => {
  wrapper = await mount(
    <BrowserRouter>
      <Provider store={store}>
        <AddEditVehicle match={{ params: { vehicleId } }} />
         </Provider>
       </BrowserRouter>
      );
     await wrapper.update();
});

эта оболочка не может передать необходимые параметры, что приводит к сбою следующих спецификаций.

it("expect `isEditMode` value to set", () => {
      const componentState = wrapper.find("AddEditVehicle").instance().state;
      expect(componentState.isEditMode).toEqual(true);
});

Версии :

  • реагировать ^ 16.4.2
  • реагировать-маршрутизатор ^ 4.3.1
  • шутить ^ 23.5.0
  • фермент ^ 3.4.4

1 Ответ

0 голосов
/ 18 февраля 2019

Проблема с моим подходом состояла в том, что мой Компонент был частью Маршрута, но все же я обернул компонент с withRouter, что является избыточным.Итак, в модульном тесте, когда я проходил детали маршрута match, он переопределялся.Таким образом, удаление withRouter заставило решение работать.

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