Мокування зовнішніх залежностей: підходи та антипатерни
Коли варто підміняти зовнішні сервіси в тестах, а коли це шкодить надійності.

Мокування зовнішніх залежностей: підходи та антипатерни
Навіщо взагалі мокувати
Тести, які ходять у реальний платіжний шлюз або зовнішнє API геолокації, повільні, нестабільні і коштують грошей на кожен прогін. Мокування підміняє таку залежність передбачуваною заглушкою, яка повертає заздалегідь задану відповідь, що робить тест швидким і детермінованим. Детальніше про суміжний підхід можна прочитати в матеріалі «Property-based тестування на практиці».

Коли мокування шкодить
Головний антипатерн — мокувати те, чим сам код володіє, наприклад власний шар доступу до даних. Такий тест перестає перевіряти щось корисне: він підтверджує лише те, що мок викликається з очікуваними аргументами, а не те, що система дійсно працює правильно з реальною базою даних.
Інша небезпека — надмірне мокування внутрішньої логіки призводить до тестів, які ламаються при будь-якому рефакторингу реалізації, навіть якщо поведінка системи ззовні не змінилася. Розумне правило: мокувати варто межі системи — зовнішні сервіси, час, випадкові числа — але не власну бізнес-логіку, для якої краще використовувати реальний код і тестову (in-memory чи контейнеризовану) інфраструктуру. Ці ідеї перегукуються з темами «Contract-тестування мікросервісів» та «React Server Components і Vue Islands: що обрати у 2026».
Схожі матеріали
Автоматизація smoke-тестів після деплою
Практичний розбір теми «автоматизація smoke-тестів після деплою»: підходи, інструменти та типові помилки.
Behavior-Driven Development і Gherkin
Практичний розбір теми «behavior-Driven Development і Gherkin»: підходи, інструменти та типові помилки.
Chaos-тестування відмовостійкості
Практичний розбір теми «chaos-тестування відмовостійкості»: підходи, інструменти та типові помилки.