Junior — Middle
Тестирлөө процессинде Mock объекттердин негизги ролу жана колдонулушу эмнеде?
sobes.tech AI
AIден жооп
Mock объекстер тестирлөөдө системдин чыныгы компоненттеринин жүрүм-турумун имитациялоо үчүн колдонулат, алар менен тесттелүүчү модуль өз ара аракеттенет. Mockтун негизги ролу — тесттелүүчү кодду тышкы көзкарандылыктардан (мисалы, маалыматтар базалары, тармактык кызматтар) бөлүп, тесттердин тез, ишенимдүү жана кайра иштелип чыгышын камсыз кылуу.
Mock объекттердин колдонулушу:
- көзкарандылыктар менен өз ара аракеттенүүлөрдү текшерүү (мисалы, метод чакыруулары, өткөрүлгөн параметрлер)
- көзкарандылыктардын ар кандай иштөө сценарийлерин симуляциялоо (жакшы, каталар, кечикүүлөр)
- тесттик чөйрөнү жөнөкөйлөтүү.
Мисал катары Go тилинде интерфейстер жана mock колдонуп, тышкы кызматты чакыруу функциясын тестирлөө:
package service
type ExternalAPI interface {
GetData(id string) (string, error)
}
func ProcessData(api ExternalAPI, id string) (string, error) {
data, err := api.GetData(id)
if err != nil {
return "", err
}
return "Processed: " + data, nil
}
// Тестте mock түзөбүз:
type MockAPI struct {}
func (m *MockAPI) GetData(id string) (string, error) {
if id == "123" {
return "mocked data", nil
}
return "", fmt.Errorf("not found")
}
// Тест
func TestProcessData(t *testing.T) {
mock := &MockAPI{}
result, err := ProcessData(mock, "123")
if err != nil || result != "Processed: mocked data" {
t.Errorf("күтүлгөн эмес натыйжа: %v, каталар: %v", result, err)
}
}