Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Що таке мокова функція в контексті тестів?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**Мокова функція (mock)** - підроблена функція, яка підміняє реальну в тестах, щоб контролювати її поведінку і перевіряти, як з нею взаємодіє тестований код. **Ключове:** мок-функція не про результат, а про поведінку: вона дає змогу відстежувати виклики, аргументи й порядок, а не обчислення.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)ЗображенняМокова функція (*mock function*) - це **підроблена функція, яка підміняє реальну в тестах**, щоб контролювати її поведінку і перевіряти, як з нею взаємодіє тестований код. --- ### **Навіщо вона потрібна** Мок-функції використовують, коли: - викликати справжню функцію **небажано** (вона робить запит у мережу, в базу, пише файл, викликає сторонній сервіс) - потрібно перевірити **сам факт виклику**, а не результат (наприклад, «чи викликається функція і з якими аргументами?») - потрібно **емулювати різні сценарії** (успіх, помилка, затримка, порожня відповідь) - тестована функція **залежить від інших**, і ці залежності потрібно ізолювати --- ### **Що вміє мок-функція** Вона дозволяє: 1. **Підмінити справжній виклик** 2. **Підставити потрібну відповідь** (наприклад, `return 42`) 3. **Відстежувати виклики**: скільки разів викликалася, з якими аргументами, у якому порядку 4. **Перевіряти взаємодію**, а не обчислення --- ### **Простий приклад на Jest** ```js const log = jest.fn(); // мок-функція log("hello"); expect(log).toHaveBeenCalled(); // перевіряємо, що функція взагалі викликалася expect(log).toHaveBeenCalledWith("hello"); // перевіряємо, що викликалася з потрібними аргументами ``` --- ### **Головна ідея** **Мок-функція не про результат, а про поведінку.** Вона дозволяє тестувати логіку поточної ділянки коду без залежності від того, «що там відбувається зовні».Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.