¿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:

  1. JUnit Platform: Proporciona la base para lanzar frameworks de pruebas en la JVM. Define el API para descubrir, filtrar y ejecutar pruebas.
  2. JUnit Jupiter: Contiene las nuevas anotaciones y el modelo de programación para escribir pruebas en JUnit 5.
  3. 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

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter:5.8.1'
}

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 addition es un método de prueba.
  • assertEquals: Verifica que el resultado de calculator.add(1, 1) sea igual a 2. 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.

  1. Crea la clase Calculator con el método subtract.
  2. Escribe una prueba para el método subtract usando 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.Test y org.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.

© Copyright 2024. Todos los derechos reservados