¿Qué es Junit Assert?
Assert es un método útil para determinar el estado de Pasa o No Pasa de un caso de prueba. Los métodos de aserción son proporcionados por la clase org.junit.Assert que extiende la clase java.lang.Object.
Hay varios tipos de afirmaciones como booleanas, nulas, idénticas, etc.
Junit proporciona una clase llamada Assert, que proporciona un montón de métodos de afirmación útiles para escribir casos de prueba y para detectar fallas en las pruebas.
Los métodos de aserción son proporcionados por la clase org.junit.Assert que extiende la clase java.lang.Object .
En este tutorial, aprenderá:
- Métodos JUnit Assert
- Booleano
- Objeto nulo
- Idéntico
- Afirmar es igual a
- Assert Array Equals
- Mensaje de error
- JUnit assertEquals
- Afirmaciones de coma flotante
- Ejemplo de afirmación de JUnit
Métodos JUnit Assert
Booleano
Si desea probar las condiciones booleanas (verdadero o falso), puede utilizar los siguientes métodos de aserción
- asertTrue (condición)
- aseverarFalso (condición)
Aquí la condición es un valor booleano.
Objeto nulo
Si desea verificar el valor inicial de un objeto / variable, tiene los siguientes métodos:
- asertNull (objeto)
- asertNotNull (objeto)
Aquí el objeto es un objeto Java, por ejemplo, assertNull (actual);
Idéntico
Si desea comprobar si los objetos son idénticos (es decir, comparando dos referencias al mismo objeto java) o diferentes.
- asertSame (esperado, real), devolverá verdadero si se espera == real
- asertNotSame (esperado, real)
Afirmar es igual a
Si desea probar la igualdad de dos objetos, tiene los siguientes métodos
- asertEquals (esperado, real)
Devolverá verdadero si: esperaba.equals (actual) devuelve verdadero.
Assert Array Equals
Si desea probar la igualdad de matrices, tiene los siguientes métodos como se indica a continuación:
- asertArrayEquals (esperado, real)
El método anterior debe usarse si las matrices tienen la misma longitud, para cada valor válido para i , puede verificarlo como se indica a continuación:
- asertEquals (esperado [i], real [i])
- assertArrayEquals (esperado [i], real [i])
Mensaje de error
Si desea lanzar cualquier error de afirmación, tiene fail () que siempre resulta en un veredicto fallido.
- Fallo (mensaje);
Puede tener un método de aserción con un parámetro String adicional como primer parámetro. Esta cadena se agregará al mensaje de error si falla la aserción. Por ejemplo, fail (mensaje) se puede escribir como
- asertEquals (mensaje, esperado, real)
JUnit assertEquals
Tiene assertEquals (a, b) que se basa en el método equals () de la clase Object.
- Aquí se evaluará como a.equals (b).
- Aquí, la clase bajo prueba se usa para determinar una relación de igualdad adecuada.
- Si una clase no anula el método equals () de la clase Object , obtendrá el comportamiento predeterminado del método equals () , es decir, la identidad del objeto.
Si un y b son primitivas, tales como byte , int , boolean , etc. entonces se llevará a cabo la siguiente para assertEquals (a, b):
una y b serán convertidos a su equivalente tipo de objeto de envoltura ( Byte, Integer , Boolean , etc.), y después a.equals (B) serán evaluados.
Por ejemplo: considere las cadenas mencionadas a continuación que tienen los mismos valores, probémoslo usando assertTrue
String obj1 = "Junit";String obj2 = "Junit";asertEquals (obj1, obj2);
La declaración de aserción anterior devolverá verdadero como obj1.equals (obj2) devuelve verdadero.
Afirmaciones de coma flotante
Cuando desee comparar tipos de punto flotante (por ejemplo, doble o flotante ), necesita un parámetro delta adicional requerido para evitar problemas con errores de redondeo al hacer comparaciones de punto flotante.
La aserción se evalúa como se indica a continuación:
- Math.abs (esperado - real) <= delta
Por ejemplo:
asertEquals (aDoubleValue, anotherDoubleValue, 0.001)
Ejemplo de afirmación de JUnit
El siguiente ejemplo demuestra cómo afirmar una condición utilizando los métodos de declaración JUnit.
Creemos una clase de prueba simple llamada Junit4AssertionTest.java y una clase de corredor de prueba TestRunner.java .
Creará pocas variables e importantes declaraciones de aserción en JUnit.
En este ejemplo, ejecutará nuestra clase de prueba usando TestRunner.java
Paso 1) Creemos una clase que cubra todos los métodos de declaración de aserción importantes en junit:
Junit4AssertionTest.java
paquete guru99.junit;importar org.junit.Assert estático. *;import org.junit.Test;public class Junit4AssertionTest {@Pruebapublic void testAssert () {// Declaración de variableString string1 = "Junit";String string2 = "Junit";String string3 = "prueba";String string4 = "prueba";String string5 = nulo;int variable1 = 1;int variable2 = 2;int [] airethematicArrary1 = {1, 2, 3};int [] airethematicArrary2 = {1, 2, 3};// Afirmar declaracionesasertEquals (cadena1, cadena2);asertSame (cadena3, cadena4);asertNotSame (cadena1, cadena3);asertNotNull (cadena1);asertNull (cadena5);asertTrue (variable1Paso 2) Necesita crear una clase de corredor de prueba para ejecutar la clase anterior:
TestRunner.java
paquete guru99.junit;import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;TestRunner de clase pública {public static void main (String [] args) {Resultado resultado = JUnitCore.runClasses (Junit4AssertionTest.class);for (Failure failure: result.getFailures ()) {System.out.println (failure.toString ());}System.out.println ("Resultado ==" + resultado.wasSuccessful ());}}Paso 3) Analicemos el resultado esperado paso a paso:
Considere todas las declaraciones de aserción una por una:
- asertEquals (cadena1, cadena2);
Ahora compare string1 = "Junit" con string2 = "Junit" con el método equals de la clase de objeto. Reemplazo del método assertEquals del método java.lang.Object.equals ():
string1.equals (string2) => devuelve verdadero
Así que assertEquals (string1, string2) devolverá verdadero .
- asertSame (cadena3, cadena4);
La funcionalidad "assertSame ()" es para comprobar que los dos objetos se refieren al mismo objeto.
Dado que cadena3 = "prueba" y cadena4 = "prueba" significa que tanto cadena3 como cadena4 son del mismo tipo, por lo tanto, assertSame (cadena3, cadena4) devolverá verdadero .
- asertNotSame (cadena1, cadena3);
La funcionalidad "assertNotSame ()" es para comprobar que los dos objetos no se refieren al mismo objeto.
Dado que string1 = "Junit" y string3 = "test" significa que tanto string1 como string3 son de diferentes tipos, assertNotSame (string1, string3) devolverá verdadero .
- asertNotNull (cadena1);
La funcionalidad "assertNotNull ()" es verificar que un objeto no sea nulo.
Dado que string1 = "Junit", que es un valor no nulo, assertNotNull (string1) devolverá verdadero .
- asertNull (cadena5);
La funcionalidad "assertNull ()" es verificar que un objeto sea nulo.
Dado que string5 = null, que es un valor nulo, assertNull (string5) devolverá verdadero .
- asertTrue (variable1
La funcionalidad "assertTrue ()" es para comprobar que una condición es verdadera.
Dado que variable1 = 1 y variable2 = 2, lo que muestra que la condición de variable1
verdadero .
- asertArrayEquals (airethematicArrary1, airethematicArrary2);
La funcionalidad "assertArrayEquals ()" es verificar que la matriz esperada y la matriz 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} que muestra que ambas matrices son iguales, assertArrayEquals (airethematicArrary1, airethematicArrary2) devolverá verdadero
Dado que las siete declaraciones de aserción de la clase Junit4AssertionTest.java devuelven verdadero, por lo tanto, cuando ejecute la clase de aserción de prueba, devolverá una prueba exitosa. (ver el resultado a continuación)
Paso 4) Haga clic derecho en Junit4AssertionTest.java y haga clic en ejecutarAs-> JUnit. Verá la salida como se indica a continuación:
La salida anterior muestra un resultado de prueba exitoso como se esperaba.
Resumen:
En este tutorial, aprendió todos los tipos importantes de métodos de afirmación proporcionados por JUnit. Además, ha visto los ejemplos de declaraciones de aserción. Lo que muestra que si todas las declaraciones de aserción devuelven verdaderas, entonces la GUI de prueba devolverá un resultado verdadero y si la prueba única falla, devolverá un resultado fallido.