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.