Junit Assert y AssertEquals con ejemplo

⚡ Resumen inteligente

JUnit Los métodos `assert` y `assertEquals` determinan si una prueba ha superado o fallado comparando los valores esperados con los reales. Este recurso explica los métodos `assert` que proporciona `org.junit.Assert`, incluyendo aserciones booleanas, de nulidad, de identidad, de igualdad y de matrices, con un ejemplo práctico completo.

  • ✅ Propósito: Los métodos Assert de org.junit.Assert verifican las condiciones y detectan fallos en las pruebas.
  • 🔢 Tipos de métodos: Las aserciones booleanas, nulas, idénticas, de igualdad, de igualdad entre matrices y de mensajes de error cubren las comprobaciones comunes.
  • 🟰 afirmarIgual: Compara valores usando el método equals(), wrapping primero transforma las primitivas en objetos.
  • 🔬 Punto flotante: Se requiere una tolerancia delta al comparar valores de tipo float o double.
  • 🧪 Ejemplo: Una clase de prueba y un ejecutor demuestran que todas las sentencias assert clave devuelven verdadero.

JUnit Afirmar y AfirmarIgual

¿Qué es Junit Assert?

`assert` es un método útil para determinar si una prueba se ha superado o no. Los métodos `assert` los proporciona la clase `org.junit.Assert`, que extiende la clase `java.lang.Object`.

Existen varios tipos de aserciones, como booleanas, nulas, idénticas, etc.

JUnit Proporciona una clase llamada Assert, que ofrece una serie de métodos de aserción útiles para escribir casos de prueba y detectar fallos en las pruebas.

Los métodos de afirmación son proporcionados por la clase. org.junit.Afirmar, que extiende el java.lang.Object clase.

JUnit Afirmar métodos

Boolean

Si desea comprobar las condiciones booleanas (verdadero o falso), puede utilizar los siguientes métodos de aserción:

  1. asertTrue (condición)
  2. aseverarFalso (condición)

Aquí la condición es un valor booleano.

Objeto nulo

Si desea comprobar el valor inicial de un objeto/variable, tiene los siguientes métodos:

  1. afirmarNulo(objeto)
  2. afirmarNoNull(objeto)

Aquí el objeto es un Java objeto, p.ej. afirmarNull(real);

Idéntico

Si desea comprobar si los objetos son idénticos (es decir, comparando dos referencias al mismo objeto) Java objeto) o diferente:

  1. assertSame(esperado, real) — Devolverá verdadero si esperado == real.
  2. afirmarNotSame (esperado, real)

Afirmar es igual

Si quieres comprobar la igualdad de dos objetos, tienes el siguiente método:

  • afirmarEquals(esperado, real)

Volverá verdadero si esperado.igual a(real) devuelve verdadero

Afirmar que la matriz es igual

Si quieres comprobar la igualdad de matrices, tienes el siguiente método:

  • afirmarArrayEquals(esperado, real)

El método anterior debe usarse si los arreglos tienen la misma longitud. Para cada valor válido para i, puede comprobarlo como se indica a continuación:

  • assertEquals(expected[i], actual[i])
  • assertArrayEquals(expected[i], actual[i])

Mensaje de error

Si desea arrojar algún error de afirmación, tiene fallar(), lo que siempre resulta en un veredicto de fracaso.

  • fallar(mensaje);

Puedes tener un método de aserción con un adicional Cordón parámetro como primer parámetro. Esta cadena se agregará al mensaje de error si la aserción falla. Por ejemplo, fallar(mensaje) Se puede escribir como:

  • assertEquals(mensaje, esperado, real)
#1 Mejores en generalPruebas de aplicaciones globales
9.8/ 10
★ ★ ★ ★ ★
Obtenga una demostración gratuita
PractiTest
9.5/ 10
★ ★ ★ ★ ★
Visitar PractiTest
Testiny
9.3/ 10
★ ★ ★ ★ ★
Visitar Testiny
Mejores paraPruebas colaborativas y control de calidadGestión de pruebas Equipos de control de calidad pequeños y medianos
Función clave✓Pruebas de integración de terceros✓Gestión centralizada de pruebas✓Casos de prueba manuales y automatizados
ERP y SAP✓jira, Slack, TestRail✓jira, Jenkins, Slack✓Jira, GitHub, GitLab
Prueba GratuitaDemo gratuita14-Día de prueba gratuitaDemo gratuita
Obtenga una demostración gratuitaVisitar PractiTestVisitar Testiny

JUnit asertEquals

Tiene afirmarIgual(a, b), que se basa en el es igual a () método de la clase Objeto.

  • Aquí será evaluado como a.es igual a (b).
  • Aquí la clase bajo prueba se utiliza para determinar una relación de igualdad adecuada.
  • Si una clase no anula la es igual a () método de la Objeto clase, obtendrá el comportamiento predeterminado de la es igual a () método, es decir, identidad del objeto.

If a y b son primitivos como byte, int, booleano, etc., entonces se hará lo siguiente para assertEquals(a, b):

a y b se convertirán a su tipo de objeto contenedor equivalente (Byte, Entero, Booleano, etc.), y luego a.es igual a (b) será evaluado.

Por ejemplo, consideremos las siguientes cadenas que tienen los mismos valores; comprobémoslo usando assertEquals:

String obj1 = "Junit";
String obj2 = "Junit";
assertEquals(obj1, obj2);

La instrucción assert anterior devolverá verdadero ya que obj1.equals(obj2) devuelve verdadero.

Afirmaciones de punto flotante

Cuando quieras comparar tipos de punto flotante (por ejemplo, doble or flotar), necesitas un parámetro adicional obligatorio, deltapara evitar problemas con errores de redondeo al realizar comparaciones de punto flotante.

La afirmación se evalúa como se indica a continuación:

  • Matemáticas.abs(esperado – real) <= delta

Por ejemplo:

afirmarIgual(aDoubleValor, otroDoubleValor, 0.001)

JUnit Ejemplo de afirmación

El siguiente ejemplo demuestra cómo afirmar una condición usando JUnit afirmar métodos.

Vamos a crear una clase de prueba simple llamada Prueba de aserción Junit4.java y una clase de corredor de pruebas PruebaRunner.java.

Crearás algunas variables y declaraciones de aserción importantes en JUnit.

En este ejemplo, ejecutará nuestra clase de prueba utilizando TestRunner.java.

Paso 1) Vamos a crear una clase que cubra todos los métodos importantes de la declaración assert en JUnit:

Prueba de aserción Junit4.java

package guru99.junit;

import static org.junit.Assert.*;
import org.junit.Test;

public class Junit4AssertionTest {

    @Test
    public void testAssert() {

        // Variable declaration
        String string1 = "Junit";
        String string2 = "Junit";
        String string3 = "test";
        String string4 = "test";
        String string5 = null;
        int variable1 = 1;
        int variable2 = 2;
        int[] airethematicArrary1 = { 1, 2, 3 };
        int[] airethematicArrary2 = { 1, 2, 3 };

        // Assert statements
        assertEquals(string1, string2);
        assertSame(string3, string4);
        assertNotSame(string1, string3);
        assertNotNull(string1);
        assertNull(string5);
        assertTrue(variable1 < variable2);
        assertArrayEquals(airethematicArrary1, airethematicArrary2);
    }
}

Paso 2) Necesitas crear una clase de ejecución de pruebas para ejecutar la clase anterior:

PruebaRunner.java

package guru99.junit;

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class TestRunner {
    public static void main(String[] args) {
        Result result = JUnitCore.runClasses(Junit4AssertionTest.class);
        for (Failure failure : result.getFailures()) {
            System.out.println(failure.toString());
        }
        System.out.println("Result==" + result.wasSuccessful());
    }
}

Paso 3) Analicemos el resultado esperado paso a paso. Consideremos todas las sentencias assert una por una:

  1. assertEquals(cadena1, cadena2);

Ahora compare string1="Junit" con string2="Junit" usando el método equals de la clase Object. Reemplace el método assertEquals con el método java.lang.Object.equals():

string1.equals(string2) => devuelve verdadero

Entonces assertEquals(string1, string2) devolverá su verdadero.

  1. afirmarSame(cadena3, cadena4);

La funcionalidad “assertSame()” sirve para comprobar que los dos objetos se refieren al mismo objeto. Dado que string3=”test” y string4=”test”, tanto string3 como string4 son del mismo tipo, por lo que assertSame(string3, string4) devolverá su verdadero.

  1. afirmarNotSame(cadena1, cadena3);

La funcionalidad “assertNotSame()” sirve para comprobar que los dos objetos no se refieren al mismo objeto. Dado que string1=”Junit” y string3=”test”, tanto string1 como string3 son de tipos diferentes, por lo que assertNotSame(string1, string3) devolverá su verdadero.

  1. afirmarNotNull(cadena1);

La funcionalidad “assertNotNull()” sirve para comprobar que un objeto no es nulo. Dado que string1=”Junit”, que es un valor no nulo, assertNotNull(string1) devolverá su verdadero.

  1. afirmarNulo(cadena5);

La funcionalidad “assertNull()” sirve para comprobar que un objeto es nulo. Dado que string5=null, que es un valor nulo, assertNull(string5) devolverá su verdadero.

  1. assertTrue(variable1 < variable2);

La funcionalidad “assertTrue()” sirve para comprobar que una condición es verdadera. Dado que variable1=1 y variable2=2, lo que demuestra que la condición variable1 < variable2 es verdadera, assertTrue(variable1 < variable2) devolverá su verdadero.

  1. afirmarArrayEquals(airethematicArrary1, airethematicArrary2);

La funcionalidad “assertArrayEquals()” sirve para comprobar que el array esperado y el array resultante sean iguales. El tipo de array puede ser int, long, short, char, byte o java.lang.Object. Dado que airethematicArrary1 = { 1, 2, 3 } y airethematicArrary2 = { 1, 2, 3 }, lo que demuestra que ambos arrays son iguales, assertArrayEquals(airethematicArrary1, airethematicArrary2) devolverá su verdadero.

Dado que las siete afirmaciones de la Prueba de aserción Junit4.java La clase devuelve verdadero, cuando ejecute la prueba assert de la clase, devolverá una prueba exitosa (vea la salida a continuación).

Paso 4) Haga clic con el botón derecho en Junit4AssertionTest.java y haga clic en Ejecutar como -> JUnit. Verá el resultado como se indica a continuación:

JUnit Ejemplo de afirmación

El resultado anterior muestra que la prueba se realizó correctamente, tal como se esperaba.

Preguntas Frecuentes

Sí. Los asistentes de IA pueden generar aserciones como `assertEquals`, `assertTrue` y otras a partir del comportamiento esperado de un método. Aun así, conviene revisar los valores esperados y los casos límite para garantizar que las pruebas sean significativas.

Sí. La IA puede sugerir `assertEquals` frente a `assertSame` o `assertArrayEquals` según lo que estés comparando. Esto reduce errores comunes, como comprobar referencias cuando se pretendía comparar valores.

assertEquals comprueba la igualdad de valores mediante el método equals(). assertSame comprueba que dos referencias apunten al mismo objeto en memoria. Dos objetos con el mismo valor pueden provocar que assertSame falle.

Cuando una afirmación falla, JUnit Genera un AssertionError, marca la prueba como fallida e informa el mensaje opcional junto con los valores esperados y reales para ayudarle a depurar la prueba.

Resumir este post con: