Что тестировать во фронтенд-приложении на React?
- Какие тесты писать для компонентов?
Тестировать поведение, важное пользователю: что показывается при разных данных (пусто, ошибка, загрузка, список), что происходит после действий (отправка формы, фильтр, удаление), валидацию и граничные случаи. Чистую логику (форматирование, расчёты) — простыми unit-тестами. Ключевые сценарии целиком (вход, оформление заказа) — несколькими e2e (Playwright). Не тестировать детали реализации и сторонние библиотеки; снапшоты всего компонента — хрупкие и мало что проверяют.
- Больше всего — интеграционных тестов компонентов
- Сеть подменять на уровне запросов (MSW), а не мокать каждый модуль
- Тест на каждый исправленный баг
А ещё Хороший вопрос: «что сломается для пользователя, если этот тест упадёт?»
Подробно
Для формы заказа: показывает ошибки при пустых полях; блокирует кнопку во время отправки; после успеха — сообщение и очистка; при ошибке сервера — понятный текст и сохранённые данные.
Что хотят услышать
- Поведение для пользователя и состояния.
- Логика unit-тестами, сценарии e2e.
- Без деталей реализации и снапшотов всего.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Снапшот каждого компонента — лучший способ покрытия, он ловит любые изменения
- ✗Проверять, что useState был вызван с нужным аргументом
- ✓Поведение для пользователя: состояния и результаты действий; логика — unit, сценарии — e2e
- ✗Тестировать сторонние библиотеки вместе со своим кодом
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.