Назад к вопросам
Junior — Middle
74
Каким образом реализуешь замещающие объекты для модульного тестирования?
Ответ от нейросети
sobes.tech AI
В Go для модульного тестирования замещающие объекты (моки, стабы) обычно реализуются с помощью интерфейсов.
- Определяете интерфейс, который описывает нужное поведение.
- Создаёте структуру, реализующую этот интерфейс, с нужной логикой для теста.
Пример:
package service
type Database interface {
GetUser(id int) (User, error)
}
type User struct {
ID int
Name string
}
// Реализация замещающего объекта для теста
type MockDB struct {}
func (m *MockDB) GetUser(id int) (User, error) {
return User{ID: id, Name: "Test User"}, nil
}
// В тесте можно использовать MockDB вместо реальной базы
Также можно использовать сторонние библиотеки для моков, например, gomock или testify/mock.