intermediate
Vitest и Jest
Запускайте fast unit и integration tests с watch mode, fake timers, module mocking, snapshots где полезно и TypeScript-aware setup.
Jest и Vitest — раннеры для JS/TS с describe/it, matchers, mocking, snapshots и watch mode. Vitest использует transform pipeline Vite для быстрого cold start и нативного ESM; у Jest шире legacy-экосистема и зрелые snapshots.
Для time-dependent кода — `vi.useFakeTimers()` / `jest.useFakeTimers()`, для границ модулей — `vi.mock`, в setup — глобальные matchers вроде расширений Testing Library.
На интервью: сравните Vitest и Jest для Vite monorepo, упомяните setup, globals и TypeScript paths.
Типовые ошибки: утечка моков между тестами, snapshot без ревью, integration с чрезмерными моками.
Компромисс — скорость Vitest против зрелости плагинов Jest в смешанных legacy-репозиториях.
Чеклист:
- Сбрасывайте моки и таймеры в `afterEach`.
- Держите setup-файлы минимальными и явными.
- Выбирайте раннер по bundler и потребностям ESM.