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