Sobes.tech
Middle

რა არის mock-ობიექტი (სატყუარი) ტესტირებაში?

sobes.tech AI

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

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

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

Go-ში ინტერფეისებისა და 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 User"}, nil
}

// ტესტში
func TestGetUserName(t *testing.T) {
    repo := &MockUserRepo{}
    user, err := repo.GetUser(1)
    if err != nil {
        t.Fatal(err)
    }
    if user.Name != "Test User" {
        t.Errorf("պահանջվում էր Test User, ստացվեց %s", user.Name)
    }
}

Այսպիսով, mock-օբյեկտները օգնում են ստեղծել վերահսկվող միջավայր՝ թեստավորման համար և բացահայտել սխալները՝ առանց արտաքին համակարգերի կախվածության։