Junior — Middle
Jak jste testovali kód, který komunikuje s databází?
sobes.tech AI
Odpověď od AI
Pro testování kódu, který pracuje s databází v jazyce Go, se používá několik přístupů:
- Mockování databáze — vytváření rozhraní pro práci s databází a nahrazení skutečných volání mocky, aby bylo možné testovat logiku bez skutečné databáze.
- Testovací databáze — použití samostatné testovací databáze nebo databází v paměti (například SQLite) pro integrační testy.
- Transakce s rollbackem — v testech se otevře transakce, provádějí se operace a na konci se změny vrátí zpět, aby se neznečišťovalo testovací prostředí.
Příklad použití rozhraní a mocků:
// Rozhraní pro práci s databází
type UserRepository interface {
GetUser(id int) (*User, error)
}
// V testech se vytvoří mock
type MockUserRepo struct {}
func (m *MockUserRepo) GetUser(id int) (*User, error) {
return &User{ID: id, Name: "Test"}, nil
}
Tento přístup umožňuje izolovat testovaný kód od skutečné databáze.