Sobes.tech
Junior — Middle

Ma'lumotlar bazasi bilan o'zaro ta'sir qiladigan kodni qanday test qildingiz?

sobes.tech AI

AIdan javob

Go tilida ma'lumotlar bazasi bilan o'zaro aloqada bo'ladigan kodni test qilish uchun bir nechta yondashuvlar qo'llaniladi:

  • Ma'lumotlar bazasini mock qilish — ma'lumotlar bazasi bilan ishlash uchun interfeyslar yaratish va haqiqiy chaqiruvlarni mock'lar bilan almashtirish, shunda mantiqni haqiqiy ma'lumotlar bazasisiz test qilish mumkin.
  • Test ma'lumotlar bazalari — alohida test ma'lumotlar bazasi yoki xotira ichidagi bazalar (masalan, SQLite) dan foydalanish, integratsion testlarni o'tkazish uchun.
  • Rollback bilan tranzaktsiyalar — testlarda tranzaktsiya ochish, operatsiyalarni bajarish va oxirida o'zgarishlarni bekor qilish, shunda test muhitini ifloslamaslik.

Interfeys va mocklardan foydalanish misoli:

// Ma'lumotlar bazasi bilan ishlash uchun interfeys
type UserRepository interface {
    GetUser(id int) (*User, error)
}

// Testlarda mock yaratish
type MockUserRepo struct {}
func (m *MockUserRepo) GetUser(id int) (*User, error) {
    return &User{ID: id, Name: "Test"}, nil
}

Bu yondashuv test qilinayotgan kodni haqiqiy ma'lumotlar bazasidan ajratishga imkon beradi.