Middle
Šta je mock objekat (lažna) u testiranju?
sobes.tech АИ
Одговор од АИ
Мок објекат (лажни објекат) у тестирању је посебан објекат који имитира понашање стварног компонента или модула система. Он се користи за изолацију тестираног кода од спољашњих зависности, како би се проверила логика без утицаја стварних сервиса или ресурса.
На пример, ако имате функцију која приступа бази података, у тестовима уместо стварне везе можете користити мок објекат који ће враћати унапред дефинисане податке. Ово убрзава тестове и чини их поузданијим.
Пример у Go-у са интерфејсима и моковима:
// Интерфејс за рад са базом података
type UserRepository interface {
GetUser(id int) (*User, error)
}
// Мок имплементација
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)
}
}
Овим путем, мок објекти помажу у стварању контролисаног окружења за тестирање и у откривању грешака у логици без зависности од спољашњих система.