Middle+
Kas yra mock (melagingas)?
sobes.tech AI
Atsakymas iš AI
Mock (moc) — tai objektas, kuris imituoja tikro objekto elgseną testuose. Mocks naudojami izoliuoti testuojamą kodą nuo išorinių priklausomybių, kad būtų galima patikrinti logiką be sudėtingų ar išorinių operacijų vykdymo.
Go kalboje mocks dažnai kuriami rankiniu būdu arba naudojant generatorius (pvz., mockgen). Jie įgyvendina sąsajas, kurias naudoja testuojamas kodas, ir leidžia nustatyti laukiamus iškvietimus ir grąžinamas reikšmes.
Paprasto sąsajos mock pavyzdys:
// Sąsaja
type UserRepository interface {
GetUser(id int) (*User, error)
}
// Mock
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("naudotojas nerastas")
}
Šis mock gali būti naudojamas testuose, siekiant kontroliuoti saugyklos elgseną be tikros duomenų bazės.