Тестирование
В React и Next.js существует несколько типов тестов, каждый из которых имеет своё назначение и сферу применения. На этой странице представлен обзор типов тестов и часто используемых инструментов для тестирования вашего приложения.
Типы тестов
- Модульное тестирование (Unit Testing) предполагает тестирование отдельных модулей (или блоков кода) изолированно. В React модулем может быть отдельная функция, хук или компонент.
- Тестирование компонентов (Component Testing) — это более узконаправленная версия модульного тестирования, где основным объектом тестов являются React-компоненты. Это может включать проверку рендеринга компонентов, их взаимодействия с пропсами и поведения в ответ на действия пользователя.
- Интеграционное тестирование (Integration Testing) проверяет, как несколько модулей работают вместе. Это может быть комбинация компонентов, хуков и функций.
- Сквозное тестирование (End-to-End, E2E) проверяет пользовательские сценарии в среде, имитирующей реальные условия, например в браузере. Это означает тестирование конкретных задач (например, процесса регистрации) в среде, приближенной к продакшену.
- Снэпшот-тестирование (Snapshot Testing) включает захват результата рендеринга компонента и сохранение его в файл снэпшота. При запуске тестов текущий результат рендеринга компонента сравнивается с сохранённым снэпшотом. Изменения в снэпшоте указывают на неожиданные изменения в поведении.
Асинхронные серверные компоненты
Поскольку async
серверные компоненты являются новинкой в экосистеме React, некоторые инструменты ещё не поддерживают их в полной мере. Пока мы рекомендуем использовать сквозное тестирование (E2E) вместо модульного тестирования (Unit Testing) для async
-компонентов.
Руководства
Ознакомьтесь с руководствами ниже, чтобы узнать, как настроить Next.js с этими популярными инструментами тестирования:
Cypress
Узнайте, как настроить Cypress с Next.js для сквозного (E2E) и компонентного тестирования.
Jest
Узнайте, как настроить Jest с Next.js для модульного тестирования и тестирования снимками.
Playwright
Узнайте, как настроить Playwright с Next.js для сквозного (E2E) тестирования.
Vitest
Узнайте, как настроить Vitest с Next.js для модульного тестирования.