Sobes.tech
Junior — Middle

Wie haben Sie den Code getestet, der mit der Datenbank interagiert?

sobes.tech KI

Antwort von AI

Um Code, der mit einer Datenbank in Go interagiert, kann auf verschiedene Weisen getestet werden:

  • Mocking der Datenbank — Schnittstellen für die Arbeit mit der Datenbank erstellen und echte Aufrufe durch Mocks ersetzen, um die Logik ohne eine echte Datenbank zu testen.
  • Testdatenbanken — eine separate Testdatenbank oder In-Memory-Datenbanken (z.B. SQLite) verwenden, um Integrationstests durchzuführen.
  • Transaktionen mit Rollback — in Tests eine Transaktion öffnen, Operationen durchführen und am Ende die Änderungen zurücksetzen, um die Testumgebung sauber zu halten.

Beispiel für die Verwendung von Schnittstellen und Mocks:

// Schnittstelle für die Arbeit mit der Datenbank
type UserRepository interface {
    GetUser(id int) (*User, error)
}

// In Tests ein Mock erstellen
type MockUserRepo struct {}
func (m *MockUserRepo) GetUser(id int) (*User, error) {
    return &User{ID: id, Name: "Test"}, nil
}

Dieser Ansatz ermöglicht die Isolierung des zu testenden Codes von der realen Datenbank.