Utilisation des Timeouts dans JUnit 5 pour les Tests Temporels dans un projet Maven
Apprendre à utiliser les timeouts de JUnit 5 pour gérer les tests temporels dans le cadre d'un projet Maven.
Contenu de l'exercice
Apprendre à utiliser les timeouts de JUnit 5 pour gérer les tests temporels dans le cadre d'un projet Maven.
Objectifs de l'exercice
Le projet contient une classe Calculator
qu'il convient de tester.
Etapes :
Création du projet Maven :
Ouvrez votre terminal ou invite de commandes. Utilisez la commande suivante pour créer un nouveau projet Maven interactif :
mvn archetype:generate -DgroupId=com.example -DartifactId=monprojet -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Structure du projet :
Allez dans le répertoire du projet nouvellement créé :
cd monprojet
Configuration du fichier pom.xml :
Ouvrez le fichier pom.xml avec votre éditeur de texte préféré.
Ajoutez la dépendance JUnit 5 dans la section
<dependencies>
<!-- ... autres dépendances ... -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
Installation des dépendances :
Retournez dans le terminal et exécutez la commande Maven pour télécharger les dépendances :
mvn clean install
Création d'une classe avec une méthode nécessitant un timeout :
Créez une nouvelle classe dans le répertoire src/main/java/com/example :
package com.example;
public class TacheLongue {
public void effectuerTacheLongue() {
// Simuler une tâche longue
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
Création d'un test avec un timeout :
Créez une nouvelle classe de test dans le répertoire src/test/java/com/example pour tester la méthode de la classe TacheLongue
avec un timeout :
package com.example;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertTimeout;
import static java.time.Duration.ofSeconds;
public class TacheLongueTest {
@Test
public void testEffectuerTacheLongueAvecTimeout() {
TacheLongue tacheLongue = new TacheLongue();
assertTimeout(ofSeconds(3), () ->
tacheLongue.effectuerTacheLongue()
);
}
}
Exécution des tests :
Utilisez la commande Maven pour exécuter les tests :
mvn test
Résultats :
Vous devriez voir la sortie indiquant que le test a été exécuté avec succès, et que le timeout a été respecté.
Conclusion :
Vous avez appris à utiliser les timeouts de JUnit 5 pour gérer les tests temporels dans un projet Maven. Cela permet de s'assurer que les tâches longues se terminent dans le délai spécifié. Explorez d'autres fonctionnalités avancées de JUnit 5 pour des tests unitaires plus complets, y compris ceux liés à la gestion du temps.