Junior — Middle
Mocks in testen en waarom ze nodig zijn
sobes.tech AI
Antwoord van AI
Mocks (mock-ups) in testen zijn nepobjecten die het gedrag van echte afhankelijkheden van het systeem nabootsen. Ze zijn nodig om de geteste code te isoleren van externe componenten, zodat de tests snel, betrouwbaar en reproduceerbaar zijn.
Bijvoorbeeld, als een functie afhankelijk is van een database, kan in plaats van een echte verbinding een mock worden gebruikt die vooraf gedefinieerde gegevens teruggeeft. Dit stelt je in staat om de logica van de functie te controleren zonder risico op fouten door problemen met de database.
In Go worden mocks vaak gemaakt met behulp van interfaces en speciale bibliotheken, zoals gomock of testify/mock.
Voorbeeld van een eenvoudige mock in Go:
// Interface
type DB interface {
GetUser(id int) (User, error)
}
// Mock
type MockDB struct {}
func (m *MockDB) GetUser(id int) (User, error) {
return User{ID: id, Name: "Test User"}, nil
}
// In de test
func TestGetUserName(t *testing.T) {
db := &MockDB{}
user, err := db.GetUser(1)
if err != nil {
t.Fatal(err)
}
if user.Name != "Test User" {
t.Errorf("onverwachte gebruikersnaam")
}
}