Middle+
Mock (soxta) nima?
sobes.tech AI
AIdan javob
Mock (moc) — bu testlarda haqiqiy ob'ektning xatti-harakatini imitator qiluvchi ob'ekt. Mocks tashqi bog'liqliklardan test qilinayotgan kodni ajratib turish uchun ishlatiladi va murakkab yoki tashqi operatsiyalarni bajarmasdan mantiqni tekshirish imkonini beradi.
Go tilida, mocklar ko'pincha qo'lda yoki generatorlar yordamida (masalan, mockgen) yaratiladi. Ular test qilinayotgan kod tomonidan ishlatiladigan interfeyslarni amalga oshiradi va kutilgan chaqiruvlar va qaytariladigan qiymatlarni belgilashga imkon beradi.
Oddiy interfeys mockining misoli:
// Interfeys
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("foydalanuvchi topilmadi")
}
Ushbu mock haqiqiy ma'lumotlar bazasiz depozitorning xatti-harakatini nazorat qilish uchun testlarda ishlatilishi mumkin.