Назад к вопросам
Middle+
4
Что такое mock (мок)?
Компании, где спрашивали
ТБанк
Ответ от нейросети
sobes.tech AI
Mock (мок) — это объект-заглушка, который имитирует поведение реального объекта в тестах. Моки используются для изоляции тестируемого кода от внешних зависимостей, чтобы проверить логику без реального выполнения сложных или внешних операций.
В Go моки часто создают вручную или с помощью генераторов (например, mockgen). Они реализуют интерфейсы, которые использует тестируемый код, и позволяют задавать ожидаемые вызовы и возвращаемые значения.
Пример простого мока интерфейса:
// Интерфейс
type UserRepository interface {
GetUser(id int) (*User, error)
}
// Мок
type MockUserRepo struct {
Users map[int]*User
}
func (m *MockUserRepo) GetUser(id int) (*User, error) {
if user, ok := m.Users[id]; ok {
return user, nil
}
return nil, errors.New("user not found")
}
Такой мок можно использовать в тестах, чтобы контролировать поведение репозитория без реальной базы данных.