Sobes.tech
Junior — Middle

Ako implementujete náhradné objekty pre jednotkové testovanie?

sobes.tech AI

Odpoveď od AI

V Go sa jednotkovými testami sa náhradné objekty (mocks, stubs) zvyčajne implementujú pomocou rozhraní.

  1. Definujte rozhranie, ktoré opisuje požadované správanie.
  2. Vytvorte štruktúru, ktorá implementuje toto rozhranie, s potrebnou logikou pre test.

Príklad:

package service

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

type User struct {
    ID int
    Name string
}

// Implementácia náhradného objektu pre test

type MockDB struct {}

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

// V teste môžete použiť MockDB namiesto reálnej databázy

Tiež je možné použiť externé knižnice na mocky, ako napríklad gomock alebo testify/mock.