En este tema, aprenderemos sobre las aserciones más comunes en JUnit. Las aserciones son fundamentales para verificar que el código se comporte como se espera. JUnit proporciona una variedad de métodos de aserción que nos permiten comparar valores, verificar condiciones y lanzar excepciones si las condiciones no se cumplen.

  1. Introducción a las Aserciones Comunes

Las aserciones en JUnit se utilizan para comprobar que los resultados de nuestras pruebas son los esperados. Si una aserción falla, el test se considera fallido. A continuación, se presentan algunas de las aserciones más comunes que se utilizan en JUnit:

  • assertEquals(expected, actual): Verifica que dos valores sean iguales.
  • assertNotEquals(unexpected, actual): Verifica que dos valores no sean iguales.
  • assertTrue(condition): Verifica que una condición sea verdadera.
  • assertFalse(condition): Verifica que una condición sea falsa.
  • assertNull(object): Verifica que un objeto sea nulo.
  • assertNotNull(object): Verifica que un objeto no sea nulo.
  • assertArrayEquals(expectedArray, actualArray): Verifica que dos arrays sean iguales.

  1. Ejemplos Prácticos

2.1 assertEquals

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

public class AssertEqualsTest {

    @Test
    public void testAddition() {
        int result = 2 + 3;
        assertEquals(5, result, "2 + 3 debería ser 5");
    }
}

En este ejemplo, assertEquals verifica que el resultado de 2 + 3 sea igual a 5. Si no lo es, el test fallará y mostrará el mensaje "2 + 3 debería ser 5".

2.2 assertNotEquals

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

public class AssertNotEqualsTest {

    @Test
    public void testSubtraction() {
        int result = 5 - 3;
        assertNotEquals(1, result, "5 - 3 no debería ser 1");
    }
}

Aquí, assertNotEquals verifica que el resultado de 5 - 3 no sea igual a 1. Si el resultado es 1, el test fallará.

2.3 assertTrue y assertFalse

import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.assertFalse;
import org.junit.jupiter.api.Test;

public class AssertTrueFalseTest {

    @Test
    public void testConditions() {
        assertTrue(3 > 2, "3 es mayor que 2");
        assertFalse(2 > 3, "2 no es mayor que 3");
    }
}

En este ejemplo, assertTrue verifica que 3 > 2 sea verdadero y assertFalse verifica que 2 > 3 sea falso.

2.4 assertNull y assertNotNull

import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import org.junit.jupiter.api.Test;

public class AssertNullNotNullTest {

    @Test
    public void testNullValues() {
        String str1 = null;
        String str2 = "JUnit";

        assertNull(str1, "str1 debería ser nulo");
        assertNotNull(str2, "str2 no debería ser nulo");
    }
}

Aquí, assertNull verifica que str1 sea nulo y assertNotNull verifica que str2 no sea nulo.

2.5 assertArrayEquals

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

public class AssertArrayEqualsTest {

    @Test
    public void testArrayEquality() {
        int[] expectedArray = {1, 2, 3};
        int[] actualArray = {1, 2, 3};

        assertArrayEquals(expectedArray, actualArray, "Los arrays deberían ser iguales");
    }
}

En este ejemplo, assertArrayEquals verifica que expectedArray y actualArray sean iguales.

  1. Ejercicios Prácticos

Ejercicio 1: Verificar Suma

Escribe un test que verifique que la suma de dos números es correcta.

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

public class SumTest {

    @Test
    public void testSum() {
        int a = 10;
        int b = 20;
        int result = a + b;
        assertEquals(30, result, "10 + 20 debería ser 30");
    }
}

Ejercicio 2: Verificar Condiciones

Escribe un test que verifique que una condición es verdadera y otra es falsa.

import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.assertFalse;
import org.junit.jupiter.api.Test;

public class ConditionTest {

    @Test
    public void testConditions() {
        assertTrue(5 > 3, "5 es mayor que 3");
        assertFalse(3 > 5, "3 no es mayor que 5");
    }
}

Ejercicio 3: Verificar Arrays

Escribe un test que verifique que dos arrays son iguales.

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

public class ArrayTest {

    @Test
    public void testArrayEquality() {
        String[] expectedArray = {"JUnit", "Test"};
        String[] actualArray = {"JUnit", "Test"};
        assertArrayEquals(expectedArray, actualArray, "Los arrays deberían ser iguales");
    }
}

  1. Retroalimentación y Consejos

  • Errores Comunes: Un error común es intercambiar los parámetros expected y actual en las aserciones. Asegúrate de que el valor esperado sea el primer parámetro y el valor actual sea el segundo.
  • Mensajes de Error: Proporciona mensajes de error claros y descriptivos en las aserciones para facilitar la identificación de problemas cuando un test falla.
  • Pruebas Independientes: Asegúrate de que cada test sea independiente y no dependa del resultado de otros tests.

Conclusión

En esta sección, hemos cubierto las aserciones más comunes en JUnit, proporcionando ejemplos prácticos y ejercicios para reforzar los conceptos. Las aserciones son una herramienta poderosa para verificar que el código se comporte como se espera. En el próximo tema, exploraremos las aserciones avanzadas y cómo utilizarlas para realizar verificaciones más complejas.

© Copyright 2024. Todos los derechos reservados