Middle
Какво е mock обект (заглушка) в тестването?
sobes.tech AI
Отговор от AI
Обект mock (фалшив обект) в тестването е специален обект, който имитира поведението на реален компонент или модул на системата. Той се използва за изолиране на тестирания код от външни зависимости, за да се провери логиката без влияние на реални услуги или ресурси.
Например, ако имате функция, която се свързва с база данни, в тестовете вместо реална връзка може да използвате mock обект, който връща предварително зададени данни. Това ускорява тестовете и ги прави по-надеждни.
Пример на Go с използване на интерфейси и mock:
// Интерфейс за работа с базата
type UserRepository interface {
GetUser(id int) (*User, error)
}
// Реализация mock
type MockUserRepo struct {}
func (m *MockUserRepo) GetUser(id int) (*User, error) {
return &User{ID: id, Name: "Test User"}, nil
}
// В теста
func TestGetUserName(t *testing.T) {
repo := &MockUserRepo{}
user, err := repo.GetUser(1)
if err != nil {
t.Fatal(err)
}
if user.Name != "Test User" {
t.Errorf("очаквано Test User, получено %s", user.Name)
}
}
По този начин mock обектите помагат за създаване на контролирана среда за тестване и за откриване на грешки в логиката без зависимост от външни системи.