Sobes.tech
Middle+

Mock (süni) nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Mock (moc) — bu testlərdə real obyektin davranışını təqlid edən yer tutucu obyekt. Mocks xarici asılılıqlardan test olunan kodu ayırmaq üçün istifadə olunur və mürəkkəb və ya xarici əməliyyatları yerinə yetirmədən məntiqi yoxlamağa imkan verir.

Go-da, mocklar tez-tez əl ilə və ya generatorlar (məsələn, mockgen) vasitəsilə yaradılır. Onlar test olunan kod tərəfindən istifadə olunan interfeysləri həyata keçirir və gözlənilən çağırışları və geri qaytarılan dəyərləri təyin etməyə imkan verir.

Sadə interfeys mock nümunəsi:

// 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("istifadəçi tapılmadı")
}

Bu mock, real verilənlər bazası olmadan depozitorun davranışını yoxlamaq üçün testlərdə istifadə oluna bilər.