Sobes.tech
Junior — Middle

Hoe implementeer je vervangende objecten voor eenheidstests?

sobes.tech AI

Antwoord van AI

In Go worden voor unittests vervangende objecten (mocks, stubs) meestal geïmplementeerd met behulp van interfaces.

  1. Definieer een interface die het benodigde gedrag beschrijft.
  2. Maak een structuur die deze interface implementeert, met de benodigde logica voor de test.

Voorbeeld:

package service

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

type User struct {
    ID int
    Name string
}

// Implementatie van het vervangende object voor de test

type MockDB struct {}

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

// In de test kan MockDB worden gebruikt in plaats van de echte database

Ook kunnen externe bibliotheken zoals gomock of testify/mock worden gebruikt.