Middle
Kas ir mock-objekts (fiktīvs objekts) testēšanā?
sobes.tech AI
Atbilde no AI
Testos laikā mock-objekts (fiktīvs objekts) ir īpašs objekts, kas imitē reāla komponenta vai moduļa uzvedību. To izmanto, lai izolētu testēto kodu no ārējām atkarībām, lai pārbaudītu loģiku bez ietekmes no reāliem pakalpojumiem vai resursiem.
Piemēram, ja jums ir funkcija, kas piekļūst datu bāzei, testos vietā, lai izmantotu reālu savienojumu, var izmantot mock-objektu, kas atgriež iepriekš noteiktus datus. Tas paātrina testus un padara tos uzticamākus.
Go valodā ar interfeisiem un mock piemērs:
// Interfeiss darbam ar datu bāzi
type UserRepository interface {
GetUser(id int) (*User, error)
}
// Mock realizācija
type MockUserRepo struct {}
func (m *MockUserRepo) GetUser(id int) (*User, error) {
return &User{ID: id, Name: "Test User"}, nil
}
// Testā
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("gaidīts Test User, saņemts %s", user.Name)
}
}
Tādējādi mock-objekti palīdz izveidot kontrolētu testēšanas vidi un atklāt kļūdas loģikā bez atkarības no ārējām sistēmām.