Middle+
Čo je mock (falošný)?
sobes.tech AI
Odpoveď od AI
Mock (moc) — objekt náhradník, ktorý napodobňuje správanie skutočného objektu počas testovania. Mocks sa používajú na izoláciu testovaného kódu od externých závislostí, aby sa mohla overiť logika bez vykonávania zložitých alebo externých operácií.
V Go sa moki často vytvárajú ručne alebo pomocou generátorov (napríklad mockgen). Implementujú rozhrania, ktoré používa testovaný kód, a umožňujú definovať očakávané volania a hodnoty, ktoré sa majú vrátiť.
Príklad jednoduchého mocku rozhrania:
// Rozhranie
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("používateľ nenájdený")
}
Tento mock možno použiť v testoch na kontrolu správania úložiska bez reálnej databázy.