Sobes.tech
Middle

Ի՞նչ է mock-օբյեկտը (կեղծ) թեստավորման ժամանակ։

sobes.tech AI

Պատասխան AI-ից

Թեստավորման ժամանակ mock-օբյեկտը (կեղծ օբյեկտ) հատուկ օբյեկտ է, որը պատճենում է համակարգի իրական կոմպոնենտի կամ մոդուլի վարքագիծը։ Այն օգտագործվում է թեստավորվող կոդը արտաքին կախվածություններից առանձնացնելու համար՝ առանց իրական ծառայությունների կամ ռեսուրսների ազդեցության՝ տրամադրելով հնարավորինս վերահսկվող միջավայր։

Օրինակ, եթե ունեք ֆունկցիա, որը մուտք է գործում տվյալների բազա, թեստերի ժամանակ իրական կապի փոխարեն կարող եք օգտագործել 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-օբյեկտները օգնում են ստեղծել վերահսկվող միջավայր՝ թեստավորման համար և բացահայտել սխալները՝ առանց արտաքին համակարգերի կախվածության։