Sobes.tech
Middle

Wat is een mock-object (nep) in testen?

sobes.tech AI

Antwoord van AI

Een mock-object in testen is een speciaal object dat het gedrag imiteert van een echt component of module van het systeem. Het wordt gebruikt om de geteste code te isoleren van externe afhankelijkheden, zodat de logica kan worden gecontroleerd zonder invloed van echte services of bronnen.

Bijvoorbeeld, als je een functie hebt die toegang heeft tot een database, kun je in tests in plaats van een echte verbinding een mock-object gebruiken dat vooraf gedefinieerde gegevens teruggeeft. Dit versnelt de tests en maakt ze betrouwbaarder.

Voorbeeld in Go met interfaces en mocks:

// Interface voor werken met de database
type UserRepository interface {
    GetUser(id int) (*User, error)
}

// Mock-implementatie
type MockUserRepo struct {}

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

// In de test
func TestGetUserName(t *testing.T) {
    repo := &MockUserRepo{}
    user, err := repo.GetUser(1)
    if err != nil {
        t.Fatal(err)
    }
    if user.Name != "Test User" {
        t.Errorf("verwacht Test User, kreeg %s", user.Name)
    }
}

Op deze manier helpen mock-objecten bij het creëren van een gecontroleerde testomgeving en het opsporen van fouten in de logica zonder afhankelijk te zijn van externe systemen.