Sobes.tech
Junior — Middle

მოკები ტესტირებაში და რატომ არის ეს აუცილებელი

sobes.tech AI

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

ტესტირების დროს mock (მოჩვენებითი) ობიექტები — ეს არის ყალბი ობიექტები, რომლებიც იმიტირებენ სისტემის რეალურ დამოკიდებულებებს. ისინი აუცილებელია ტესტირებადი კოდის იზოლაციისთვის გარეგანი კომპონენტებისგან, რათა ტესტები იყოს სწრაფი, საიმედო და გამეორებადი.

მაგალითად, თუ ფუნქცია დამოკიდებულია მონაცემთა ბაზაზე, რეალური კავშირის ნაცვლად შეიძლება გამოიყენოს mock, რომელიც აბრუნებს წინასწარ განსაზღვრულ მონაცემებს. ეს საშუალებას აძლევს ფუნქციის ლოგიკის შემოწმებას მონაცემთა ბაზის პრობლემების გარეშე.

Go ენაზე mock-ები ხშირად შექმნილია ინტერფეისებისა და სპეციალური ბიბლიოთეკების, მაგალითად, gomock ან testify/mock, გამოყენებით.

სადაც არის მარტივი mock-ის მაგალითი Go-ში:

// ინტერფეისი
 type DB interface {
     GetUser(id int) (User, error)
 }

// Mock
 type MockDB struct {}

 func (m *MockDB) GetUser(id int) (User, error) {
     return User{ID: id, Name: "Test User"}, nil
 }

// ტესტში
 func TestGetUserName(t *testing.T) {
     db := &MockDB{}
     user, err := db.GetUser(1)
     if err != nil {
         t.Fatal(err)
     }
     if user.Name != "Test User" {
         t.Errorf("უცნობი მომხმარებლის სახელი")
     }
 }