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("უცნობი მომხმარებლის სახელი")
}
}