Junior — Middle
Ինչպե՞ս իրականացնում եք փոխարինող օբյեկտները միավորային թեստավորման համար։
sobes.tech AI
Պատասխան AI-ից
Go-ում միավորային թեստերի համար փոխարինող օբյեկտները (mocks, stubs) սովորաբար իրականացվում են ինտերֆեյսների միջոցով:
- Հստակեցրեք այն ինտերֆեյսը, որը նկարագրում է անհրաժեշտ վարքագիծը:
- Ստեղծեք այն կառուցվածքը, որը իրականացնում է այդ ինտերֆեյսը՝ անհրաժեշտ լոգիկայով թեստի համար:
Օրինակ:
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։