Sobes.tech
Junior — Middle

Comment distinguer les tests unitaires des tests d'intégration et quelles sont leurs principales différences?

sobes.tech IA

Réponse de l'IA

Les tests unitaires vérifient des parties individuelles et isolées du code — généralement des méthodes ou des classes — sans interaction avec des systèmes externes (bases de données, réseau, etc.). Ils sont rapides, simples et aident à s’assurer qu’un morceau précis de logique fonctionne correctement.

Les tests d’intégration vérifient l’interaction entre plusieurs composants ou modules du système. Ils peuvent utiliser des bases de données réelles, des API ou d’autres services pour s’assurer que les composants fonctionnent bien ensemble.

Principales différences :

  • Champ de test : unitaires — un seul module, d’intégration — plusieurs modules ensemble.
  • Isolation : unitaires — isolés, d’intégration — pas.
  • Vitesse : unitaires plus rapides, d’intégration plus lentes.
  • Objectif : unitaires — vérifier la logique, d’intégration — vérifier l’interaction.

Exemple en C# :

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

// Test d’intégration
[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));
}