Назад к вопросам
Middle+
3
Как генерируешь моки?
Компании, где спрашивали
Magnit Tech
Ответ от нейросети
sobes.tech AI
В Go моки обычно генерируются с помощью специализированных инструментов, которые создают реализации интерфейсов для тестирования.
Популярные способы генерации моков:
-
gomock — официальная библиотека от Google. Используется вместе с инструментом
mockgen, который по интерфейсу генерирует мок-структуру.Пример генерации:
mockgen -source=service.go -destination=mock_service.go -package=service -
mockery — удобный генератор моков, поддерживает различные опции.
-
moq — простой генератор моков.
Пример использования gomock:
import (
"testing"
"github.com/golang/mock/gomock"
"your/module/service"
)
func TestSomething(t *testing.T) {
ctrl := gomock.NewController(t)
defer ctrl.Finish()
mockRepo := service.NewMockUserRepository(ctrl)
mockRepo.EXPECT().GetUser(1).Return(service.User{ID:1, Name:"Mock User"}, nil)
// тестируемый код с mockRepo
}
Таким образом, генерация моков позволяет автоматизировать создание заглушек и облегчить написание тестов с изоляцией зависимостей.