Sobes.tech
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.