Junior — Middle
Come hai testato il codice che interagisce con il database?
sobes.tech AI
Risposta dell'AI
Per testare il codice che interagisce con il database in Go, si utilizzano diversi approcci:
- Mocking del database — creare interfacce per lavorare con il database e sostituire le chiamate reali con mock, per testare la logica senza un database reale.
- Database di test — usare un database di test separato o database in-memory (ad esempio SQLite) per eseguire test di integrazione.
- Transazioni con rollback — nei test, aprire una transazione, eseguire operazioni e alla fine fare rollback per non contaminare l'ambiente di test.
Esempio di utilizzo di interfaccia e mock:
// Interfaccia per lavorare con il database
type UserRepository interface {
GetUser(id int) (*User, error)
}
// Nei test, creare un mock
type MockUserRepo struct {}
func (m *MockUserRepo) GetUser(id int) (*User, error) {
return &User{ID: id, Name: "Test"}, nil
}
Questo approccio permette di isolare il codice testato dal database reale.