Junior — Middle
Hoe heb je de code getest die met de database communiceert?
sobes.tech AI
Antwoord van AI
Om de code te testen die in Go met een database werkt, worden verschillende benaderingen gebruikt:
- Mocken van de database — interfaces maken voor het werken met de database en de echte aanroepen vervangen door mocks, zodat de logica getest kan worden zonder een echte database.
- Testdatabases — een aparte testdatabase of in-memory databases (bijvoorbeeld SQLite) gebruiken voor integratietests.
- Transacties met rollback — in tests een transactie openen, operaties uitvoeren en aan het einde de wijzigingen terugdraaien om de testomgeving schoon te houden.
Voorbeeld van het gebruik van interface en mocks:
// Interface voor werken met de database
type UserRepository interface {
GetUser(id int) (*User, error)
}
// In tests een mock maken
type MockUserRepo struct {}
func (m *MockUserRepo) GetUser(id int) (*User, error) {
return &User{ID: id, Name: "Test"}, nil
}
Deze aanpak maakt het mogelijk om de te testen code te isoleren van de echte database.