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.
- Definieer een interface die het benodigde gedrag beschrijft.
- 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.