Sobes.tech
Middle+

Kas ir mock (falsifikācija)?

sobes.tech AI

Atbilde no AI

Mock (moc) — tas objekts, kas imitē reāla objekta uzvedību testos. Mocks tiek izmantoti, lai izolētu testēto kodu no ārējām atkarībām, lai pārbaudītu loģiku bez sarežģītu vai ārēju operāciju izpildes.

Go valodā mocks bieži tiek veidoti manuāli vai ar ģeneratoriem (piemēram, mockgen). Tie īsteno interfeisus, kurus izmanto testējamais kods, un ļauj noteikt gaidāmās izsaukšanas un atgrieztās vērtības.

Vienkārša interfeisa mock piemērs:

// Interfeiss
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("lieta nav atrasta")
}

Šo mock var izmantot testos, lai kontrolētu glabātāja uzvedību bez reālas datu bāzes.