Wat is het verschil tussen unittests en integratietests?
sobes.tech AI
Antwoord van AI
Eenheidstests en integratietests verschillen in het niveau van dekking en doelen:
-
Eenheidstests controleren afzonderlijke, geïsoleerde delen van de code — meestal functies of methoden. Ze zijn niet afhankelijk van externe systemen (databases, netwerken, enz.) en worden snel uitgevoerd. Het doel is om te verzekeren dat een specifieke module correct werkt.
-
Integratietests controleren de interactie van meerdere componenten of modules samen. Ze kunnen echte databases, services en andere externe afhankelijkheden gebruiken. Het doel is om te verzekeren dat de componenten correct samenwerken.
Voorbeeld in Go:
// Eenheidstest van een functie
func TestAdd(t *testing.T) {
result := Add(2, 3)
if result != 5 {
t.Errorf("Verwacht 5, kreeg %d", result)
}
}
// Integratietest met database
func TestUserCreation(t *testing.T) {
db := setupTestDB()
userService := NewUserService(db)
err := userService.CreateUser("testuser")
if err != nil {
t.Fatal(err)
}
// Controleren of de gebruiker daadwerkelijk in de database is aangemaakt
}
Op deze manier richten eenheidstests zich op de logica, terwijl integratietests op de interactie tussen componenten.