Junior — Middle
ტესტირების პროცესში Mock ობიექტების ძირითადი როლი და გამოყენება რა არის?
sobes.tech AI
პასუხი AI-სგან
მოკ ობიექტები გამოიყენება ტესტებში რეალური კომპონენტების ქცევის იმიტაციისთვის, რომელთაც ტესტირებადი მოდული ურთიერთქმედებს. მთავარი როლი mock-ის არის ტესტირებადი კოდის იზოლაცია გარე დამოკიდებულებებისგან (მაგალითად, მონაცემთა ბაზები, ქსელის სერვისები), რათა ტესტები იყოს სწრაფი, საიმედო და გამეორებადი.
Mock ობიექტების გამოყენება საშუალებას აძლევს:
- დაადასტუროს ურთიერთქმედებები დამოკიდებულებებთან (მაგალითად, მეთოდების გამოძახებები, გადაცემული პარამეტრები)
- იმიტაცია სხვადასხვა სცენარების მუშაობის დამოკიდებულებების (სწორია, შეცდომები, დაგვიანებები)
- მარტივია ტესტის გარემოს კონფიგურაცია.
მაგალითი Go-ში, ინტერფეისებისა და mock-ების გამოყენებით, ფუნქციის ტესტირება, რომელიც ზარის გარე სერვისს:
package service
type ExternalAPI interface {
GetData(id string) (string, error)
}
func ProcessData(api ExternalAPI, id string) (string, error) {
data, err := api.GetData(id)
if err != nil {
return "", err
}
return "Processed: " + data, nil
}
// ტესტში mock-ს ვქმნით:
type MockAPI struct {}
func (m *MockAPI) GetData(id string) (string, error) {
if id == "123" {
return "mocked data", nil
}
return "", fmt.Errorf("not found")
}
// ტესტი
func TestProcessData(t *testing.T) {
mock := &MockAPI{}
result, err := ProcessData(mock, "123")
if err != nil || result != "Processed: mocked data" {
t.Errorf("უცნობი შედეგი: %v, შეცდომა: %v", result, err)
}
}