Junior — Middle
Cum ai testat codul care interacționează cu baza de date?
sobes.tech AI
Răspuns de la AI
Pentru a testa codul care interacționează cu baza de date în Go, se folosesc mai multe abordări:
- Mocking-ul bazei de date — se creează interfețe pentru a lucra cu baza de date și se înlocuiesc apelurile reale cu mock-uri, pentru a testa logica fără o bază de date reală.
- Baze de date de test — se folosește o bază de date de test separată sau baze în memorie (de exemplu, SQLite) pentru a efectua teste de integrare.
- Tranzacții cu rollback — în teste, se deschide o tranzacție, se efectuează operații și la final se revin schimbările pentru a nu polua mediul de testare.
Exemplu de utilizare a interfeței și mock-urilor:
// Interfață pentru lucrul cu baza de date
type UserRepository interface {
GetUser(id int) (*User, error)
}
// În teste, creăm un mock
type MockUserRepo struct {}
func (m *MockUserRepo) GetUser(id int) (*User, error) {
return &User{ID: id, Name: "Test"}, nil
}
Această abordare permite izolarea codului testat de baza de date reală.