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