Junior — Middle
Մոկեր թեստավորման մեջ և ինչու են դրանք անհրաժեշտ
sobes.tech AI
Պատասխան AI-ից
Թեստավորման մեջ mock (կեղծ) օբյեկտները՝ դա այն օբյեկտներն են, որոնք պատճենում են համակարգի իրական կախվածությունների վարքը։ Դրանք անհրաժեշտ են թեստվող կոդը արտաքին բաղադրիչներից առանձնացնելու համար, որպեսզի թեստերը լինեն արագ, հուսալի և վերարտադրելի։
Օրինակ, եթե ֆունկցիան կախված է տվյալների բազայից, փոխարենը իրական կապի օգտագործման, կարելի է օգտագործել mock, որը վերադարձնում է նախապես սահմանված տվյալներ։ Սա թույլ է տալիս ստուգել ֆունկցիայի տրամաբանությունը առանց բազայի խնդիրների պատճառով ձախողումների ռիսկի։
Go լեզվում, mock-երը հաճախ ստեղծվում են ինտերֆեյսների և հատուկ գրադարանների, օրինակ, gomock կամ testify/mock, օգնությամբ։
Պարզ mock օրինակ Go լեզվում՝
// Ինտերֆեյս
type DB interface {
GetUser(id int) (User, error)
}
// Mock
type MockDB struct {}
func (m *MockDB) GetUser(id int) (User, error) {
return User{ID: id, Name: "Test User"}, nil
}
// Թեստում
func TestGetUserName(t *testing.T) {
db := &MockDB{}
user, err := db.GetUser(1)
if err != nil {
t.Fatal(err)
}
if user.Name != "Test User" {
t.Errorf("չսպասված օգտվողի անուն")
}
}