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
}
ეს მიდგომა საშუალებას აძლევს ტესტირებადი კოდი იზოლირებული იყოს რეალური მონაცემთა ბაზიდან.