Что такое Jest
Что проверяют
Не знание документации, а вашу практику тестирования фронтенда: что вы покрываете тестами, как изолируете сеть и время, почему ваши тесты не начинают падать через месяц сами по себе.
Как отвечать
Jest это тест-раннер со всем необходимым в комплекте: поиск и запуск тестов, проверки через expect, моки, подмена таймеров, покрытие, снимки. Тестовые файлы выполняются в отдельных процессах и параллельно, внутри файла тесты идут по очереди. Окружение задаётся конфигом: node для чистой логики и jsdom, когда нужен DOM без настоящего браузера.
Что стоит назвать по делу:
- jest.mock подменяет модуль целиком, jest.spyOn следит за конкретным методом и позволяет вернуть исходное поведение;
- поддельные таймеры нужны для дебаунсов, опросов и всего, что завязано на время;
- снимки дёшево ловят незапланированное изменение разметки;
- в связке с библиотекой тестирования React проверяют то, что видит пользователь: текст, роль, доступное имя, а не внутреннее состояние компонента;
- сеть подменяют на уровне сетевого слоя перехватчиком запросов, а не заглушкой на каждый вызов.
Уместное уточнение: в проектах на современных сборщиках тот же набор понятий чаще реализует Vitest с почти совместимым API, и умение объяснить разницу играет в плюс.
Где спотыкаются
Подменяют снимками осмысленные проверки, а потом обновляют их не глядя при каждом падении. Снимок фиксирует изменение, но не отвечает, правильное ли оно, и на больших деревьях превращается в шум.
Мокают собственный код вместо границ. Когда заглушки стоят на внутренних модулях, тест зелёный при сломанной связке; подменять стоит сеть, время и случайность, остальное лучше выполнять по-настоящему.
Получают плавающие тесты из-за асинхронности: проверяют результат сразу после клика вместо ожидания его появления, не сбрасывают моки между тестами и получают зависимость от порядка запуска.