Sobes.tech
Назад к вопросам
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")
}

Такой мок можно использовать в тестах, чтобы контролировать поведение репозитория без реальной базы данных.