Sobes.tech
Junior — Middle

Бирдиктүү тесттер үчүн алмаштыруу объекттерин кантип ишке аштырасыз?

sobes.tech AI

AIден жооп

Goда бирдик тесттер үчүн алмаштыргыч объекттер (mocks, stubs) адатта интерфейстер аркылуу ишке ашырылат.

  1. Керектүү жүрүм-турумду сүрөттөгөн интерфейсти аныктаңыз.
  2. Бул интерфейсти ишке ашырат турган структураны түзүңүз, тест үчүн зарыл логика менен.

Мисал:

package service

type Database interface {
    GetUser(id int) (User, error)
}

type User struct {
    ID int
    Name string
}

// Тест үчүн алмаштыргыч объекттин ишке ашырылышы

type MockDB struct {}

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

// Тестте MockDB колдонуп, реалдуу базанын ордуна колдонсо болот

Мындан тышкары, тышкы китепканалардан, мисалы, gomock же testify/mock колдонсо болот.