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 для загруженного контента.