Sobes.tech
Middle+

Ի՞նչ է mock (կեղծ)։

sobes.tech AI

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

Mock (moc) — սա տեղակալ օբյեկտ է, որը պատճենում է իրական օբյեկտի վարքագիծը թեստերի ժամանակ: Mocks-ները օգտագործվում են թեստավորվող կոդը արտաքին կախվածություններից առանձնացնելու համար, որպեսզի կարողանանք ստուգել տրամաբանությունը առանց բարդ կամ արտաքին գործողությունների իրականացման:

Go-ում mocks-ները հաճախ ստեղծվում են ձեռքով կամ գեներատորների (օրինակ, mockgen) օգնությամբ: Նրանք իրականացնում են այն ինտերֆեյսները, որոնք օգտագործում է թեստավորվող կոդը, և թույլ են տալիս սահմանել սպասվող կանչերը և վերադարձվող արժեքները:

Սովորական ինտերֆեյս mock-ի օրինակ:

// Ինտերֆեյս
type UserRepository interface {
    GetUser(id int) (*User, error)
}

// Mock
type MockUserRepo struct {
    Users map[int]*User
}

func (m *MockUserRepo) GetUser(id int) (*User, error) {
    if user, ok := m.Users[id]; ok {
        return user, nil
    }
    return nil, errors.New("օգտագործողը չի գտնվել")
}

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