Middle
Mis on mock-objekt (valetobjekt) testimises?
sobes.tech AI
Vastus AI-lt
Testimise ajal on mock-objekt (valetobjekt) spetsiaalne objekt, mis imiteerib süsteemi tegeliku komponendi või mooduli käitumist. Seda kasutatakse testitud koodi isoleerimiseks väliste sõltuvuste eest, et kontrollida loogikat ilma tõeliste teenuste või ressursside mõju all.
Näiteks, kui teil on funktsioon, mis pääseb ligi andmebaasile, siis testides saate asendada reaalse ühenduse mock-objektiga, mis tagastab eelnevalt määratletud andmed. See kiirendab teste ja muudab need usaldusväärsemaks.
Näide Go keeles kasutades liideseid ja mock-e:
// Liides andmebaasiga töötamiseks
type UserRepository interface {
GetUser(id int) (*User, error)
}
// Mock-implementatsioon
type MockUserRepo struct {}
func (m *MockUserRepo) GetUser(id int) (*User, error) {
return &User{ID: id, Name: "Test User"}, nil
}
// Testis
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("ootab Test User, sai %s", user.Name)
}
}
Sellisel viisil aitavad mock-objektid luua kontrollitavat testkeskkonda ning avastada loogika vigu ilma sõltuvuseta välissüsteemidest.