Tests d'intégration

Introduction aux tests en Java

Maria Milusheva

Senior Software Engineer

Définir les tests d'intégration

  • Intégration – processus qui consiste à combiner des composants ou sous-systèmes logiciels en un système unifié et cohérent.
  • Test d'intégration – vérifie l'interaction entre plusieurs composants ou modules d'une application pour s'assurer qu'ils fonctionnent bien ensemble. Implique souvent des dépendances externes.

Une image de meubles Ikea juste avant l'assemblage

Introduction aux tests en Java

Dépendances

  • Dépendance logicielle – relation où un composant s'appuie sur un autre pour fonctionner correctement

1 Graphique créé avec Mermaid : https://mermaid.live
Introduction aux tests en Java

Tests d'intégration vs tests unitaires

Tests unitaires :

  • Testent des composants isolément
  • Les échecs ciblent une partie précise du code
  • Plus rapides à écrire et à exécuter
  • Utilisent divers outils pour éviter de tester les dépendances
  • Valident des résultats exacts

Tests d'intégration :

  • Testent plusieurs composants et leurs interactions
  • Les échecs exigent une analyse plus poussée
  • Peuvent être lourds et plus lents à préparer et exécuter
  • Testent de vraies interactions avec de vraies dépendances
  • Peuvent valider des comportements généraux plutôt que des résultats exacts
Introduction aux tests en Java

Exemple : change de devises

Supposons que nous créions une application de change de devises :

public class ExchangeApp {
    private EuropeanCentralBankServer bank; // Permet à ExchangeApp d'utiliser le serveur de la banque

    public ExchangeApp(EuropeanCentralBankServer bank) {
        this.bank = bank; // Conserver l'objet passé au constructeur
    }


public double convertEuroTo(String currency, double amount) { double rate = this.bank.getRateEuroTo(currency); return amount * rate; // Utiliser les valeurs retournées par la méthode de la banque dans les calculs } }
Introduction aux tests en Java

Tester l'intégration du change

Les tests d'intégration vérifient à la fois la méthode convertEuroTo et EuropeanCentralBankServer :

@Test
void convert_convertsWithoutError() {
    EuropeanCentralBankServer bank = new EuropeanCentralBankServer();
    ExchangeApp exchangeApp = new ExchangeApp(bank); // Passer l'objet bank au constructeur

double amount = 1000.0; String currency = "USD"; // convertEuroTo appelle getRateEuroTo sur l'objet bank double result = exchangeApp.convertEuroTo(currency, amount); assertTrue(result > 0); // Valeur exacte imprévisible ; on fait un test de vraisemblance }
Introduction aux tests en Java

Passons à la pratique !

Introduction aux tests en Java

Preparing Video For Download...