Ответ
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()
.