Sobes.tech
Junior — Middle

Ինչպե՞ս իրականացնում եք փոխարինող օբյեկտները միավորային թեստավորման համար։

sobes.tech AI

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

Go-ում միավորային թեստերի համար փոխարինող օբյեկտները (mocks, stubs) սովորաբար իրականացվում են ինտերֆեյսների միջոցով:

  1. Հստակեցրեք այն ինտերֆեյսը, որը նկարագրում է անհրաժեշտ վարքագիծը:
  2. Ստեղծեք այն կառուցվածքը, որը իրականացնում է այդ ինտերֆեյսը՝ անհրաժեշտ լոգիկայով թեստի համար:

Օրինակ:

package service

type Database interface {
    GetUser(id int) (User, error)
}

type User struct {
    ID int
    Name string
}

// Թեստի համար փոխարինող օբյեկտի իրականացում

type MockDB struct {}

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

// Թեստում կարող եք օգտագործել MockDB՝ իրական տվյալների բազայի փոխարեն

Նաեւ հնարավոր է օգտագործել արտաքին գրադարաններ mocks-ի համար, օրինակ՝ gomock կամ testify/mock։