Sobes.tech
Junior — Middle

როგორ ჩაატარეთ კოდის ტესტირება, რომელიც ურთიერთქმედებს მონაცემთა ბაზასთან?

sobes.tech AI

პასუხი AI-სგან

Go ენის კოდში, რომელიც ურთიერთქმედებს მონაცემთა ბაზასთან, სხვადასხვა მიდგომა გამოიყენება:

  • მოკირება მონაცემთა ბაზის — შექმენით ინტერფეისები მონაცემთა ბაზასთან მუშაობისთვის და შეცვალეთ რეალური ზარები mock-ებით, რათა ლოგიკა ტესტირდეს რეალური მონაცემთა ბაზის გარეშე.
  • ტესტის მონაცემთა ბაზები — გამოიყენეთ ცალკე ტესტის მონაცემთა ბაზა ან მეხსიერებაში ბაზები (მაგალითად, SQLite) ინტეგრაციის ტესტებისთვის.
  • ტრანზაქციები როლბეკით — ტესტებში გახსნიან ტრანზაქციას, ახორციელებენ ოპერაციებს და ბოლოს უკან აბრუნებენ ცვლილებებს, რათა არ დაბინძურონ ტესტის გარემო.

ინტერფეისისა და mock-ების გამოყენების მაგალითი:

// მონაცემთა ბაზასთან მუშაობის ინტერფეისი
type UserRepository interface {
    GetUser(id int) (*User, error)
}

// ტესტებში mock-ის შექმნა
type MockUserRepo struct {}
func (m *MockUserRepo) GetUser(id int) (*User, error) {
    return &User{ID: id, Name: "Test"}, nil
}

ეს მიდგომა საშუალებას აძლევს ტესტირებადი კოდი იზოლირებული იყოს რეალური მონაცემთა ბაზიდან.