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