Sobes.tech
Middle

Тестирлөөдө mock-объект (жасалма) эмне?

sobes.tech AI

AIден жооп

Тестирлөөдө mock-объект (жасалма объект) — бул системанын чын компонентинин же модулунун жүрүм-турумун имитация кылган атайын объект. Ал тесттелип жаткан кодду тышкы көз карандычылыктардан бөлүп, чын кызматтар же ресурстар таасиринен ажыратуу үчүн колдонулат.

Мисалы, эгерде сиздин функцияңыз маалымат базасына кайрылса, тесттерде чын байланышынын ордуна алдын ала белгиленген маалыматтарды кайтарган mock-объект колдонсо болот. Бул тесттерди тездетет жана ишенимдүүлүгүн жогорулатат.

Go тилинде интерфейстер жана mock колдонуу менен мисал:

// Маалымат базасы менен иштөө үчүн интерфейс
type UserRepository interface {
    GetUser(id int) (*User, error)
}

// Mock ишке ашыруу
type MockUserRepo struct {}

func (m *MockUserRepo) GetUser(id int) (*User, error) {
    return &User{ID: id, Name: "Test User"}, nil
}

// Тестте
func TestGetUserName(t *testing.T) {
    repo := &MockUserRepo{}
    user, err := repo.GetUser(1)
    if err != nil {
        t.Fatal(err)
    }
    if user.Name != "Test User" {
        t.Errorf("күтүлгөн: Test User, алынган: %s", user.Name)
    }
}

Мындайча айтканда, mock-объекттер тесттер үчүн көзөмөлдөнгөн чөйрө түзүүгө жана логикадагы каталарды аныктоого жардам берет, тышкы системаларга көз каранды болбой.