Semestre 2
Modules
Programmation
JUnit

Junit

JUnit est un framework de test unitaire pour le langage de programmation Java. Il est utilisé pour créer un ensemble de tests pour valider que chaque partie d'un programme fonctionne comme prévu.

Les bases de JUnit

  • Une classe de test est généralement créée pour chaque classe Java que vous voulez tester. Ces classes de test contiennent des méthodes de test, chacune testant un aspect spécifique du code.
  • Les tests unitaires sont conçus pour être indépendants et pouvoir être exécutés dans n'importe quel ordre.
  • Les méthodes de test sont généralement annotées avec @Test.

Structure d'un test JUnit

Une méthode de test JUnit typique peut être structurée comme suit:

@Test
public void whenSomething_thenResult() {
  // Arrange (préparation)
  
  // Act (action)
  
  // Assert (vérification)
}
  • Arrange : Initialiser les objets et définir les valeurs d'entrée.
  • Act : Exécuter la méthode que vous voulez tester.
  • Assert : Vérifier que la méthode a produit le résultat attendu.

Annotations JUnit courantes

@Test : Marque une méthode comme une méthode de test. @BeforeEach : Une méthode marquée avec cette annotation est exécutée avant chaque méthode de test. Elle est généralement utilisée pour la configuration nécessaire pour les tests. @AfterEach : Une méthode marquée avec cette annotation est exécutée après chaque méthode de test. Elle est généralement utilisée pour le nettoyage après un test. @BeforeAll : Une méthode marquée avec cette annotation est exécutée une fois avant tous les tests dans la classe. Elle est utilisée pour la configuration initiale, comme la connexion à une base de données. @AfterAll : Une méthode marquée avec cette annotation est exécutée une fois après tous les tests dans la classe. Elle est utilisée pour le nettoyage final, comme la déconnexion d'une base de données.

Assertions

Les assertions sont utilisées pour vérifier que le code testé s'exécute comme prévu. JUnit propose de nombreuses méthodes d'assertion, comme assertEquals(), assertNotEquals(), assertTrue(), assertFalse(), etc.

Mocking

Les tests unitaires doivent être isolés et indépendants de l'extérieur. Le "mocking" permet de simuler des comportements d'objets externes. JUnit n'a pas de support intégré pour le mocking, mais il peut être combiné avec des bibliothèques de mocking comme Mockito.

Voici un exemple de test unitaire simple avec JUnit :

import static org.junit.Assert.assertEquals;
import org.junit.Test;
 
public class CalculatorTest {
    @Test
    public void testAddition() {
        Calculator calculator = new Calculator();
        int result = calculator.add(10, 5);
        assertEquals(15, result);
    }
}

Dans cet exemple, nous avons une classe CalculatorTest qui a une méthode de test testAddition(). Dans cette méthode, nous créons une nouvelle instance de Calculator, nous appelons la méthode add() sur cette instance, et enfin nous utilisons assertEquals() pour vérifier que le résultat est correct.

Les tests unitaires jouent un rôle crucial dans le développement logiciel, permettant de s'assurer que le code fonctionne comme prévu, et facilitant la détection précoce des bugs et des problèmes.

Last updated on June 21, 2024