Sobes.tech
Junior — Middle

Hoe onderscheid je modulaire tests van integratietests en wat zijn hun belangrijkste verschillen?

sobes.tech AI

Antwoord van AI

Unit tests controleren afzonderlijke, geïsoleerde delen van de code — meestal specifieke methoden of klassen — zonder interactie met externe systemen (databases, netwerken, enz.). Ze zijn snel, eenvoudig en helpen te verzekeren dat een bepaald stuk logica correct werkt.

Integratietests controleren de interactie tussen meerdere componenten of modules van het systeem. Ze kunnen echte databases, API's of andere services gebruiken om te verzekeren dat de componenten correct samenwerken.

Belangrijkste verschillen:

  • Testgebied: unit — één module, integratie — meerdere modules samen.
  • Isolatie: unit — geïsoleerd, integratie — niet.
  • Snelheid: unit sneller, integratie langzamer.
  • Doel: unit — logica controleren, integratie — interactie controleren.

Voorbeeld in C#:

// Unit test
[Test]
public void Add_TwoNumbers_ReturnsSum()
{
    var calculator = new Calculator();
    Assert.AreEqual(5, calculator.Add(2, 3));
}

// Integratietest
[Test]
public void SaveUser_UserIsSavedInDatabase()
{
    var userService = new UserService(new Database());
    var user = new User { Name = "John" };
    userService.Save(user);
    Assert.IsTrue(userService.Exists(user));
}