Тестирование

В 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 с этими популярными инструментами тестирования: