Sobes.tech
Junior — Middle

Ako ste testovali kód, ktorý komunikuje s databázou?

sobes.tech AI

Odpoveď od AI

Za testiranje koda, ktorý interaguje s databázou v Go, sa používajú rôzne prístupy:

  • Mockovanie databázy — vytváranie rozhraní na prácu s databázou a nahradenie skutočných volaní mockami, aby sa logika mohla otestovať bez skutočnej databázy.
  • Testovacie databázy — použitie samostatnej testovacej databázy alebo databáz v pamäti (napríklad SQLite) na vykonávanie integračných testov.
  • Transakcie s rollbackom — v testoch sa otvára transakcia, vykonávajú sa operácie a na konci sa zmeny vrátia späť, aby sa neznečistilo testovacie prostredie.

Príklad použitia rozhrania a mockov:

// Rozhranie pre prácu s databázou
type UserRepository interface {
    GetUser(id int) (*User, error)
}

// V testoch sa vytvorí mock
type MockUserRepo struct {}
func (m *MockUserRepo) GetUser(id int) (*User, error) {
    return &User{ID: id, Name: "Test"}, nil
}

Tento prístup umožňuje izolovať testovaný kód od skutočnej databázy.