Junior — Middle
Kako ste testirali kod koji komunicira sa bazom podataka?
sobes.tech АИ
Одговор од АИ
Za testiranje koda koji interaguje sa bazom podataka u Go, koriste se različiti pristupi:
- Mockovanje baze podataka — kreiranje interfejsa za rad sa bazom podataka i zamenjivanje stvarnih poziva mock-ovima, kako bi se logika testirala bez prave baze.
- Test baze podataka — korišćenje posebne test baze ili baza u memoriji (npr. SQLite) za integracione testove.
- Transakcije sa rollback-om — u testovima se otvara transakcija, vrše se operacije, a na kraju se vrše rollback promene, kako ne bi zagađivali testno okruženje.
Primer korišćenja interfejsa i mock-ova:
// Interfejs za rad sa bazom podataka
type UserRepository interface {
GetUser(id int) (*User, error)
}
// U testovima se kreira mock
type MockUserRepo struct {}
func (m *MockUserRepo) GetUser(id int) (*User, error) {
return &User{ID: id, Name: "Test"}, nil
}
Ovaj pristup omogućava izolaciju testiranog koda od prave baze podataka.