Middle+
Какво е mock (имитация)?
sobes.tech AI
Отговор от AI
Mock (moc) — това е обект-заглушка, който имитира поведението на реален обект при тестове. Моковете се използват за изолиране на тестирания код от външни зависимости, за да се провери логиката без изпълнение на сложни или външни операции.
В 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("потребител не е намерен")
}
Този мок може да се използва в тестове за контрол на поведението на репозитория без реална база данни.