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 колдонуп, реалдуу базанын ордуна колдонсо болот
Мындан тышкары, тышкы китепканалардан, мисалы, gomock же testify/mock колдонсо болот.