Как мокать модули в Jest/Vitest?

Middle
235 просмотров
AFK Offer AI

jest.mock("./api") автоматически мокает весь модуль — все экспорты становятся jest.fn(). Для конкретной реализации: jest.mock("./api", () => ({ fetchData: jest.fn(() => Promise.resolve(data)) })). jest.spyOn(module, "method") — мокает метод с возможностью восстановить. В Vitest: vi.mock, vi.fn, vi.spyOn. Важно: mock hoisting — jest.mock поднимается вверх файла автоматически. Для ESM модулей может потребоваться unstable_mockModule. Всегда восстанавливай моки в afterEach: jest.restoreAllMocks().

Следующий вопрос

Что такое React Server Components?