Tests d'intégration

Introduction aux tests en Java

Maria Milusheva

Senior Software Engineer

Définir les tests d'intégration

  • Intégration — processus consistant à combiner des composants ou sous-systèmes logiciels en un système unifié et cohérent.
  • Test d'intégration — test qui 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

Schéma des relations de dépendance entre classes

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 demandent une analyse plus poussée
  • Peuvent être lourds et plus longs à 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 développions une application de change :

public class ExchangeApp {
    private EuropeanCentralBankServer bank; // Enables ExchangeApp to use the bank server

    public ExchangeApp(EuropeanCentralBankServer bank) {
        this.bank = bank; // Save the object passed through the constructor
    }


public double convertEuroTo(String currency, double amount) { double rate = this.bank.getRateEuroTo(currency); return amount * rate; // Use the return values of the bank method in calculations } }
Introduction aux tests en Java

Tester l'intégration du change

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

@Test
void convert_convertsWithoutError() {
    EuropeanCentralBankServer bank = new EuropeanCentralBankServer();
    ExchangeApp exchangeApp = new ExchangeApp(bank); // Pass bank object to constructor

double amount = 1000.0; String currency = "USD"; // convertEuroTo calls getRateEuroTo from the bank object double result = exchangeApp.convertEuroTo(currency, amount); assertTrue(result > 0); // Can't predict exact value, can only sanity test }
Introduction aux tests en Java

Passons à la pratique !

Introduction aux tests en Java

Preparing Video For Download...