Middle+
Mi az a mock (hamis)?
sobes.tech MI
Válasz az MI-től
Mock (moc) — ez egy helyettesítő objektum, amely utánozza egy valódi objektum viselkedését a tesztek során. A mockokat arra használják, hogy elszigeteljék a tesztelt kódot a külső függőségektől, így ellenőrizhetjük a logikát anélkül, hogy összetett vagy külső műveleteket hajtanánk végre.
Go-ban a mockokat gyakran kézzel vagy generátorok segítségével (pl. mockgen) hozzák létre. Implementálják azokat az interfészeket, amelyeket a tesztelt kód használ, és lehetővé teszik a várt hívások és visszatérési értékek meghatározását.
Egyszerű interfész mock példája:
// Interfész
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("felhasználó nem található")
}
Ezt a mock-ot tesztekben lehet használni a repository viselkedésének ellenőrzésére anélkül, hogy valódi adatbázist használnánk.