Предположим, у нас есть следующий код
const Task = ({ data }) => { if (data.state === 'closed') return <Redirect to='/tasks' /> return <Task /> }
Если задача закрыта, мы должны быть перенаправлены в список задач. Как протестировать этот код? В response-router нет очевидного способа описанного. Позвольте мне показать вам путь. Это не идеальный способ, но он может вам помочь.
Компонент, который использует ‹Redirect›, должен быть помещен в оболочку ‹Router› из react-router. Для нашего теста мы будем использовать поддельный маршрутизатор, созданный специально для тестирования.
У нашего фальшивого роутера будет всего 2 маршрута.
Первый будет отображать корневой путь с протестированным компонентом.
Второй будет отображать только RedirectUrl.
Если наш компонент перенаправляет на требуемый путь, мы можем проверить это с помощью простого сопоставления строк.
Давайте создадим помощника по тестированию с помощью тестового маршрутизатора.
Давайте воспользуемся нашим тестовым маршрутизатором для тестирования.
Если компонент ‹Task /› перенаправляет на правильный URL-адрес, тест будет пройден.
Вот и все.
Вы знаете способ получше? Пожалуйста, поделитесь этим в комментариях. Спасибо!
Удачного тестирования!