Если ты пишешь тесты на Go, рано или поздно ты столкнёшься с необходимостью использовать моки. Это удобный способ имитировать поведение объектов, чтобы тестировать отдельные компоненты системы в изоляции. Давай разберёмся, что такое моки, как они работают в Go, и какие инструменты для этого доступны. Моки (mock) — это «поддельные» объекты или реализации интерфейсов, которые используются для имитации поведения реальных зависимостей в тестах. Пример: допустим, у тебя есть функция, которая вызывает API стороннего сервиса. При тестировании ты не хочешь зависеть от этого сервиса, так как он может быть недоступен или давать непредсказуемые результаты. В таком случае вместо реального вызова ты используешь мок, который возвращает заранее определённые ответы. Go активно использует интерфейсы, что делает процесс мокирования простым и удобным. Для создания мока достаточно определить фейковую реализацию интерфейса. Допустим, у нас есть интерфейс Service и функция, которая его использует: Для тести