Junior — Middle
Kaip atlikote kodo, kuris sąveikauja su duomenų baze, testavimą?
sobes.tech AI
Atsakymas iš AI
Testuojant kodą, kuris sąveikauja su duomenų baze Go kalboje, naudojami keli požiūriai:
- Duomenų bazės mock'inimas — kuriami sąsajos darbui su duomenų baze ir realūs iškvietimai keičiami į mock'us, kad logika būtų testuojama be tikros duomenų bazės.
- Testavimo duomenų bazės — naudojama atskira testavimo duomenų bazė arba atmintyje esanti bazė (pvz., SQLite), atliekant integracinius testus.
- Transakcijos su rollback — testuose atidaroma transakcija, atliekami veiksmai, o pabaigoje pakeitimai atšaukiami, kad nepažeistų testavimo aplinkos.
Pavyzdys, kaip naudoti sąsają ir mock'us:
// Sąsaja darbui su duomenų baze
type UserRepository interface {
GetUser(id int) (*User, error)
}
// Testuose kuriamas mock'as
type MockUserRepo struct {}
func (m *MockUserRepo) GetUser(id int) (*User, error) {
return &User{ID: id, Name: "Test"}, nil
}
Šis požiūris leidžia izoliuoti testuojamą kodą nuo tikros duomenų bazės.