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.