Sobes.tech
Назад к вопросам
Junior — Middle
80

Моки в тестировании и зачем они нужны

Компании, где спрашивали
VKVK

Ответ от нейросети

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")
     }
 }