Стратегия тестирования RN-приложения
Вопрос
Как вы организуете тестирование React Native-приложения?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Статика: TypeScript, ESLint
Unit-тесты Jest для логики: хуки данных, редьюсеры, очереди, форматирование
Компонентные тесты RNTL: поиск по ролям, `userEvent`, моки сети и нативных модулей
E2E на Detox или Maestro для критичных сценариев в CI
Фейковые таймеры, MSW или подмена API-клиента
Тестируемая архитектура: логика вне JSX, зависимости через провайдеры
Что могут спросить следом
- Как мокать сеть в компонентных тестах?
- Что тестировать первым в проекте без тестов?
- Как сделать E2E стабильными?
Разбор
Образцовый ответ: «Основа это TypeScript и линтер: они ловят много ошибок бесплатно. Логику выношу из компонентов в хуки и чистые функции и покрываю Jest: редьюсеры, офлайн-очередь, форматирование, кеш. Экраны проверяю React Native Testing Library: ищу по ролям и тексту, действую через userEvent, сеть подменяю через MSW или фейковый API-клиент, нативные модули моками. Таймеры фейковые. На критичные сценарии, вход и оформление заказа, пишу E2E на Maestro или Detox и гоняю в CI на эмуляторе. Если в проекте тестов нет, начинаю с самого рискованного и денежного: оплата, авторизация, синхронизация»
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.