¿Qué es JUnit 5?
JUnit 5 es la última versión del popular framework de pruebas unitarias para Java. Esta versión introduce una arquitectura modular y una serie de nuevas características que mejoran la flexibilidad y la extensibilidad del framework. JUnit 5 se compone de tres subproyectos principales:
- JUnit Platform: Proporciona la base para lanzar frameworks de pruebas en la JVM. Define el API para descubrir, filtrar y ejecutar pruebas.
 - JUnit Jupiter: Contiene las nuevas anotaciones y el modelo de programación para escribir pruebas en JUnit 5.
 - JUnit Vintage: Permite ejecutar pruebas escritas con versiones anteriores de JUnit (JUnit 3 y JUnit 4) en la plataforma JUnit 5.
 
Ventajas de JUnit 5
- Modularidad: La arquitectura modular permite usar solo los componentes necesarios.
 - Extensibilidad: Facilita la creación de extensiones personalizadas.
 - Compatibilidad: Permite ejecutar pruebas escritas en JUnit 3 y JUnit 4.
 - Nuevas Anotaciones: Introduce nuevas anotaciones que simplifican la escritura de pruebas.
 - Mejor Integración: Mejor integración con herramientas de construcción y entornos de desarrollo integrados (IDEs).
 
Configuración de JUnit 5
Para empezar a usar JUnit 5, necesitas agregar las dependencias necesarias a tu proyecto. Aquí te mostramos cómo hacerlo con Maven y Gradle.
Maven
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.junit</groupId>
            <artifactId>junit-bom</artifactId>
            <version>5.8.1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
<dependencies>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter</artifactId>
        <version>5.8.1</version>
        <scope>test</scope>
    </dependency>
</dependencies>Gradle
Primer Test en JUnit 5
Vamos a escribir un simple test en JUnit 5 para familiarizarnos con la nueva sintaxis y las anotaciones.
Ejemplo de Código
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class CalculatorTest {
    @Test
    void addition() {
        Calculator calculator = new Calculator();
        assertEquals(2, calculator.add(1, 1), "1 + 1 should equal 2");
    }
}Explicación del Código
- @Test: Indica que el método 
additiones un método de prueba. - assertEquals: Verifica que el resultado de 
calculator.add(1, 1)sea igual a2. Si no es así, la prueba fallará y mostrará el mensaje "1 + 1 should equal 2". 
Ejercicio Práctico
Ejercicio: Escribe una prueba para un método subtract en la clase Calculator que reste dos números.
- Crea la clase 
Calculatorcon el métodosubtract. - Escribe una prueba para el método 
subtractusando JUnit 5. 
Solución:
public class Calculator {
    public int subtract(int a, int b) {
        return a - b;
    }
}
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class CalculatorTest {
    @Test
    void subtraction() {
        Calculator calculator = new Calculator();
        assertEquals(0, calculator.subtract(1, 1), "1 - 1 should equal 0");
    }
}Retroalimentación
- Error Común: Olvidar importar las clases de JUnit. Asegúrate de importar 
org.junit.jupiter.api.Testyorg.junit.jupiter.api.Assertions. - Consejo: Usa nombres descriptivos para tus métodos de prueba para que sea claro qué funcionalidad están verificando.
 
Conclusión
En esta sección, hemos introducido JUnit 5, sus ventajas y cómo configurarlo en tu proyecto. También hemos escrito nuestro primer test en JUnit 5 y proporcionado un ejercicio práctico para reforzar los conceptos aprendidos. En la siguiente sección, exploraremos la arquitectura de JUnit 5 en mayor detalle.
Curso de JUnit
Módulo 1: Introducción a JUnit
Módulo 2: Anotaciones Básicas de JUnit
- Entendiendo @Test
 - Usando @Before y @After
 - Usando @BeforeClass y @AfterClass
 - Ignorando Tests con @Ignore
 
Módulo 3: Aserciones en JUnit
Módulo 4: Tests Parametrizados
- Introducción a los Tests Parametrizados
 - Creando Tests Parametrizados
 - Usando @ParameterizedTest
 - Tests Parametrizados Personalizados
 
Módulo 5: Suites de Tests
Módulo 6: Mocking con JUnit
Módulo 7: Características Avanzadas de JUnit
Módulo 8: Mejores Prácticas y Consejos
- Escribiendo Tests Efectivos
 - Organizando el Código de Tests
 - Desarrollo Guiado por Tests (TDD)
 - Integración Continua con JUnit
 
