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