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