Назад к вопросам
VK
Junior — Middle
80
Моки в тестировании и зачем они нужны
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Моки (mock) в тестировании — это объекты-заглушки, которые имитируют поведение реальных зависимостей системы. Они нужны для изоляции тестируемого кода от внешних компонентов, чтобы тесты были быстрыми, надежными и воспроизводимыми.
Например, если функция зависит от базы данных, вместо реального подключения можно использовать мок, который возвращает заранее заданные данные. Это позволяет проверить логику функции без риска сбоев из-за проблем с БД.
В Go моки часто создают с помощью интерфейсов и специальных библиотек, например, gomock или testify/mock.
Пример простого мока в Go:
// Интерфейс
type DB interface {
GetUser(id int) (User, error)
}
// Мок
type MockDB struct {}
func (m *MockDB) GetUser(id int) (User, error) {
return User{ID: id, Name: "Test User"}, nil
}
// В тесте
func TestGetUserName(t *testing.T) {
db := &MockDB{}
user, err := db.GetUser(1)
if err != nil {
t.Fatal(err)
}
if user.Name != "Test User" {
t.Errorf("unexpected user name")
}
}