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