Sobes.tech
Middle+

Cos'è un mock (simulazione)?

sobes.tech AI

Risposta dell'AI

Mock (moc) è un oggetto segnaposto che imita il comportamento di un oggetto reale nei test. I mock vengono utilizzati per isolare il codice testato dalle dipendenze esterne, per verificare la logica senza eseguire operazioni complesse o esterne.

In Go, i mock vengono spesso creati manualmente o con generatori (ad esempio, mockgen). Implementano interfacce utilizzate dal codice testato e consentono di definire chiamate attese e valori di ritorno.

Esempio di un mock semplice di un’interfaccia:

// Interfaccia
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("utente non trovato")
}

Questo mock può essere usato nei test per controllare il comportamento del repository senza un database reale.