Что такое Mock

Ответ

Mock (мок) — это заглушка, имитирующая поведение реального объекта или модуля в тестах. Используется для изоляции тестируемого кода от внешних зависимостей (API, базы данных и т.д.).

Пример мока функции fetch в Jest:

jest.mock('node-fetch');
const fetch = require('node-fetch');
const {Response} = jest.requireActual('node-fetch');

test('fetches data', async () => {
  fetch.mockResolvedValue(new Response(JSON.stringify({data: 'test'})));

  const result = await getData(); // тестируемая функция
  expect(result).toEqual({data: 'test'});
});

Основные случаи использования:

  • Тестирование компонентов без реальных API-вызовов
  • Имитация ошибок для проверки обработки исключений
  • Ускорение тестов за счет замены медленных операций

Моки бывают разных видов: spy (шпион), stub (заглушка), fake (фейк). В Jest чаще всего используются через jest.fn() или jest.mock().