Skip to main content

Що таке мокова функція в контексті тестів?

Мокова функція (mock function) - це підроблена функція, яка підміняє реальну в тестах, щоб контролювати її поведінку і перевіряти, як з нею взаємодіє тестований код.


Навіщо вона потрібна

Мок-функції використовують, коли:

  • викликати справжню функцію небажано (вона робить запит у мережу, в базу, пише файл, викликає сторонній сервіс)
  • потрібно перевірити сам факт виклику, а не результат (наприклад, «чи викликається функція і з якими аргументами?»)
  • потрібно емулювати різні сценарії (успіх, помилка, затримка, порожня відповідь)
  • тестована функція залежить від інших, і ці залежності потрібно ізолювати

Що вміє мок-функція

Вона дозволяє:

  1. Підмінити справжній виклик
  2. Підставити потрібну відповідь (наприклад, return 42)
  3. Відстежувати виклики: скільки разів викликалася, з якими аргументами, у якому порядку
  4. Перевіряти взаємодію, а не обчислення

Простий приклад на Jest

js
const log = jest.fn(); // мок-функція log("hello"); expect(log).toHaveBeenCalled(); // перевіряємо, що функція взагалі викликалася expect(log).toHaveBeenCalledWith("hello"); // перевіряємо, що викликалася з потрібними аргументами

Головна ідея

Мок-функція не про результат, а про поведінку. Вона дозволяє тестувати логіку поточної ділянки коду без залежності від того, «що там відбувається зовні».

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.