Как генерировать моки в Go? mockgen, gomock.

Ответ

mockgen (из go generate) генерирует мок-реализации интерфейсов. Указывают исходный интерфейс и пакет; генерируется тип с методами EXPECT() для задания ожиданий. gomock - библиотека для контроля вызовов (количество, аргументы, возвраты). Удобно для тестов с зависимостями.

//go:generate mockgen -destination=mock_repo.go -package=pkg mymod Repository
type Repository interface { Get(id int) (*User, error) }
// в тесте:
ctrl := gomock.NewController(t)
mockRepo := NewMockRepository(ctrl)
mockRepo.EXPECT().Get(1).Return(user, nil)
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.