Sobes.tech
Junior — Middle

Quelles sont les différences entre les versions de JUnit 4 et JUnit 5 dans le contexte des tests ?

sobes.tech IA

Réponse de l'IA

Les principales différences entre JUnit 4 et JUnit 5 :

  • Architecture : JUnit 5 se compose de plusieurs modules (JUnit Platform, JUnit Jupiter, JUnit Vintage), ce qui permet d'exécuter des tests de différentes versions et d'étendre la fonctionnalité. JUnit 4 est monolithique.

  • Annotations :

    • De nouvelles annotations sont apparues dans JUnit 5 : @BeforeEach au lieu de @Before, @AfterEach au lieu de @After, @BeforeAll au lieu de @BeforeClass, @AfterAll au lieu de @AfterClass.
    • @Test dans JUnit 5 supporte de nouvelles fonctionnalités, par exemple, indiquer des exceptions attendues via assertThrows au lieu du paramètre d'annotation.
  • Extensibilité : JUnit 5 offre un modèle d'extension extensible (Extension API), remplaçant les règles et runners de JUnit 4.

  • Support des expressions lambda et Java 8+ : JUnit 5 utilise les fonctionnalités de Java 8, ce qui facilite l'écriture de tests et améliore la lisibilité.

  • Tests paramétrés : La prise en charge des tests paramétrés a été améliorée dans JUnit 5 avec des sources de données plus flexibles.

Exemple d'un test simple en JUnit 5 :

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

class CalculatorTest {
    @Test
    void addition() {
        assertEquals(2, 1 + 1);
    }
}

JUnit 5 est plus moderne et flexible, recommandé pour de nouveaux projets, mais JUnit 4 est encore largement utilisé et supporté.