Quelle est la différence entre les tests unitaires et les tests d'intégration?
sobes.tech IA
Réponse de l'IA
Les tests unitaires et les tests d’intégration diffèrent par leur niveau de couverture et leurs objectifs :
-
Tests unitaires vérifient des parties isolées du code — généralement des fonctions ou des méthodes. Ils ne dépendent pas de systèmes externes (bases de données, réseaux, etc.) et s’exécutent rapidement. L’objectif est de s’assurer qu’un module spécifique fonctionne correctement.
-
Tests d’intégration vérifient l’interaction de plusieurs composants ou modules ensemble. Ils peuvent utiliser des bases de données réelles, des services et d’autres dépendances externes. L’objectif est de s’assurer que les composants fonctionnent bien ensemble.
Exemple en Go :
// Test unitaire d’une fonction
func TestAdd(t *testing.T) {
result := Add(2, 3)
if result != 5 {
t.Errorf("Attendu 5, obtenu %d", result)
}
}
// Test d’intégration avec une base de données
func TestUserCreation(t *testing.T) {
db := setupTestDB()
userService := NewUserService(db)
err := userService.CreateUser("testuser")
if err != nil {
t.Fatal(err)
}
// Vérifier que l’utilisateur a bien été créé dans la BDD
}
Ainsi, les tests unitaires se concentrent sur la logique, tandis que les tests d’intégration sur l’interaction des composants.