Библиотека React-testing: перенаправление тестового роутера

Как проверить, изменилась ли ссылка маршрутизатора после перенаправления?

После нажатия на кнопку он должен перенаправить на другую страницу с URL-адресом, заканчивающимся на «новая_страница».

Это то, что я пробовал, но не могу определить.

  {getByTestId} = render(<MyButton />);      

  const mockBoxIconButton = getByTestId('box-icon-button');

  mockBoxIconButton.click();

  console.log(getByTestId('box-icon-button').closest('a')); # undefined
  console.log(getByTestId('box-icon-button').location.href);  # undefined

  expect(
    mockExtractionButton.getByTestId('box-icon-button').closest('a')
  ).toHaveAttribute('href', /http[a-zA-Z0-9:\/-]*new_page/);
});

person SAKURA    schedule 12.05.2020    source источник


Ответы (1)


Целью react-testing-library является не тестирование реализации кода, а скорее тестирование того, как пользователь будет воспринимать взаимодействия с пользовательским интерфейсом. Поэтому в вашем случае я бы посоветовал не искать /new_page путь после маршрутизации. Вместо этого проверьте, с чем будет взаимодействовать пользователь после перенаправления на страницу. Это может быть другое нажатие кнопки или читаемые данные внутри тегов заголовков, абзацев или промежутков (независимо от того, как вы ощущаете наиболее важное взаимодействие).

Пожалуйста, обратитесь к следующей статье для большей ясности по этому поводу: -

https://kentcdodds.com/blog/introduction-the-react-testing-library

person Lakshya Thakur    schedule 12.05.2020