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