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 реалдуу маалыматтар базасы жок репозиторийдин жүрүм-турумун көзөмөлдөө үчүн тесттерде колдонулушу мүмкүн.