intermediate
Testing Library
Тестируйте через доступные roles, labels, пользовательские события, async finders и видимое поведение.
Testing Library поощряет тесты, похожие на действия пользователя: render компонента, поиск по доступным roles и label, события и проверка видимого результата. Не тестируйте детали реализации вроде внутреннего state или приватных методов — рефакторинг не должен ломать тесты поведения.
Используйте запросы `screen`, по возможности `userEvent` вместо сырого `fireEvent` и async `findBy` для данных, приходящих позже. Оборачивайте providers (router, query client) в тестовый хелпер.
На интервью объясняйте концепцию на конкретном примере и называйте поведение, которое проверяют.
Типовые ошибки: скрывать поток данных, дробить компоненты чрезмерно и выполнять побочные эффекты в render.
Компромисс часто между ясностью и переиспользованием или между явными props и удобством.
Чеклист:
- Ищите элементы как пользователь, не как реализация.
- Предпочитайте userEvent для реалистичного ввода.
- Async findBy для загруженного контента.