Ферментный тест, если onClick pushRoute перенаправляет на другую страницу - PullRequest
0 голосов
/ 13 марта 2019

Добрый день. Я пишу некоторые тесты и не совсем уверен, как проверить, действительно ли функция pushRoute отправила меня на нужную мне страницу.

Вот отредактированный код компонента и тест, который я пытаюсь выполнить.

Компонент:

  redirectToRoute= () => {
      this.props.pushRoute('/some/route')     
   }

<SomeComponent
    title="Some Title"
    value={value}
    onClick={() => this.redirectToRoute()}
 />

Тест:

it('Should redirect to route', () => {
    const pushRoute = jest.fn();
    const wrapper = setup({ pushRoute });

    wrapper.instance().redirectToRoute();
    expect(pushRoute).toHaveBeenCalledTimes(1);
});

Здесь я могу проверить, был ли вызван onClick, но сейчас я не знаю, как оформить заказ, если он перенаправляет на нужный мне маршрут.

1 Ответ

1 голос
/ 14 марта 2019

Вы также можете проверить, что pushRoute был вызван с ожидаемым маршрутом:

it('Should redirect to route', () => {
  const pushRoute = jest.fn();
  const wrapper = setup({ pushRoute });

  wrapper.instance().redirectToRoute();
  expect(pushRoute).toHaveBeenCalledTimes(1);  // Success!
  expect(pushRoute).toHaveBeenCalledWith('/some/route');  // Success!
});

Это все, что нужно проверить для этого компонента, так как он не отвечает за выполнение перенаправления, он простовызывает pushRoute свойство, которое ему дано.

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