La clase de aserciones JUnit contiene una colección de métodos estáticos que le permiten realizar pruebas unitarias. Las aserciones son una de las características principales de JUnit. Esta clase tiene más de cincuenta métodos diversos. Algunas pruebas de la clase Aserciones fallarán si una condición es verdadera, mientras que otras fallarán si una condición es falsa.

La clase Assertions también tiene muchos métodos sobrecargados. Cada método de aserción tiene al menos dos métodos sobrecargados. Descubra algunos de los métodos de clase de aserciones más populares y descubra cómo usarlos para realizar pruebas unitarias.

El método de aseveración igual a

El método assertEquals de JUnit 5 tiene más de diez variaciones. Este método es uno de los métodos de clase de aserciones más populares. Una variación del método assertEquals toma un valor esperado y la función que desea evaluar (valor real). Una segunda variante importante toma un tercer argumento adicional. Este es un mensaje de error que aparecerá si el Prueba unitaria JUnit falla

instagram viewer

La sobrecarga del método assertEquals ocurre con diferentes tipos de datos. Algunos métodos de sobrecarga de assertEquals toman un cuarto argumento llamado delta. Otras versiones reemplazan la cadena de error con una interfaz funcional de proveedor, en forma de expresión lambda.

Aserciones Métodos Clase Java

paquete com.programa;

públicoclaseAfirmacionesMétodos{
públicoestáticoEn tcuadrado(En t número){
devolver número * número;
}
}

La clase de Java AssertionsMethods anterior tiene un solo método llamado cuadrado. El método cuadrado toma un valor entero y devuelve su cuadrado. Para probar el método cuadrado y cualquier método futuro de la clase AssertionsMethods, deberá crear un caso de prueba JUnit.

Caso de prueba JUnit de AssertionsMethodsTest

paquete com.programa;

importarestáticoorganización.junit.Afirmar.assertEquals;
importarestáticoorganización.junit.Júpiter.api.Afirmaciones.*;

importarorganización.junit.Júpiter.api.Prueba;

claseAfirmacionesMétodosPrueba{
@Prueba
vacíopruebacuadrado(){
afirmarIgual(25, métodos de aserción.cuadrado(5));
afirmarEquals (36, AssertionMethods.square (6), "Sus valores cuadrados no coincidieron.");
afirmarEquals (49, AssertionMethods.square (7), () ->"Sus valores cuadrados no coincidieron.");
}
}

El método testSquare() usa tres variaciones de assertEquals() para probar el método square(). Cada assertEquals() es un éxito, ya que todos los valores esperados coinciden con los valores reales devueltos por el método square().

El método assertNull

La clase de aserciones JUnit tiene exactamente tres métodos assertNull. Cada uno de estos métodos toma uno o más argumentos y afirma si el objeto dado es nulo. Si un objeto dado no es nulo, la prueba fallará.

@Prueba
públicovacíotestStringValue(){
Cuerda valor de cadena = nulo;
afirmarNull (valor de cadena);
afirmarNull (valor de cadena, "Su valor de cadena no es nulo");
afirmarNull (valor de cadena, () ->"Su valor de cadena no es nulo");
}

El primer método assertNull() toma un objeto de cadena y verifica si es nulo. El segundo método assertNull() toma un objeto de cadena y un mensaje de cadena para mostrar si la prueba falla. El tercer y último método assertNull() toma el objeto que desea evaluar y una interfaz funcional de proveedor.

En el caso de prueba anterior, la interfaz del proveedor actúa como un objetivo de asignación para una expresión lambda. La expresión lambda genera un mensaje de error si la prueba falla.

El método de afirmación verdadera

El método assertTrue() tiene seis variaciones. Cada método afirma si una condición dada es verdadera. Si una condición de assertTrue() es falsa, la prueba fallará.

@Prueba
vacíopruebaNúmerosPares(){
En t numero1 = 10;
En t numero2 = 16;
En t numero3 = 26;
afirmarVerdadero (num1 < número2);
afirmarVerdadero (num3 > número 2, "Tu condición no es cierta.");
afirmarVerdadero (num1 < número3, () ->" Tu condición no es cierta.");
afirmarVerdadero(() -> núm1%2 == 0);
afirmarVerdadero(() -> núm2%2 == 0, "Su valor no es un número par.");
afirmarVerdadero(() -> núm3%2 == 0, () ->"Su valor no es un número par.");
}

El método testEvenNumbers() demuestra cómo usar los seis métodos assertTrue(). Todos los métodos anteriores son verdaderos, por lo tanto, esta prueba de unidad se ejecuta sin fallas ni errores.

  • assertTrue (condición booleana): este método toma una condición booleana y afirma si es verdadera. El ejemplo de este método en el código anterior afirma si el primer valor entero es menor que el segundo.
  • assertTrue (condición booleana, mensaje de cadena): este método toma una condición booleana para probar y una cadena para mostrar si es falsa.
  • afirmarTrue (condición booleana, Proveedor messageSupplier): este método toma una interfaz funcional booleana y de proveedor, como una expresión lambda. El proveedor de mensajes contiene una cadena para mostrar si la condición booleana es falsa.
  • assertTrue (BooleanSupplier booleanSupplier): este método toma una interfaz funcional BooleanSupplier, en forma de una expresión lambda que se evalúa como verdadera o falsa. El ejemplo de este método en el código usa una expresión lambda. Comprueba el resto del primer entero dividido por dos para determinar si es par o impar.
  • assertTrue (BooleanSupplier booleanSupplier, String message): este método toma una interfaz funcional BooleanSupplier en forma de expresión lambda. También se necesita un mensaje de cadena para imprimir si BooleanSupier no es verdadero.
  • afirmarTrue (BooleanSupplier booleanSupplier, Proveedor messageSupplier): este método toma una interfaz funcional BooleanSupplier para afirmar. También requiere una interfaz funcional de proveedor, que es una expresión lambda que imprimirá un valor de cadena si la prueba falla.

El método afirmarfalso

El método assertFalse() es lo opuesto al método assertTrue(). Este método evalúa una condición dada para ver si es falsa. Si una condición dada es verdadera, entonces la prueba de afirmaciónFalse() fallará. El método assertFalse() también tiene seis variaciones que aceptan los mismos argumentos que sus contrapartes assertTrue().

@Prueba
vacíopruebaNotEvenNumbers(){
En t numero1 = 11;
En t numero2 = 17;
En t numero3 = 27;
afirmarFalso (num2 < número1);
afirmarFalso (num2 > número 3, " Tu condición no es falsa.");
afirmarFalso (num3 < número1, () ->" Tu condición no es falsa.");
afirmarFalso(() -> núm1%2 == 0);
afirmarFalso(() -> núm2%2 == 0, "Su valor es un número par.");
afirmarFalso(() -> núm3%2 == 0, () ->"Su valor es un número par.");
}

Los seis métodos assertFalse() en el método testNotEvenNumbers() dan como resultado falso, lo que significa que las pruebas de assertFalse() son exitosas.

Los beneficios de las pruebas unitarias

Las pruebas unitarias son una parte integral del proceso de desarrollo de software. Los grandes proyectos de software fallan por varias razones, que van desde los equipos que trabajan en ellos hasta los enfoques de desarrollo.

El propósito de las pruebas unitarias es eliminar las fallas del software proporcionando una detección temprana de errores. Esto requiere que los equipos desarrollen especificaciones claras, mejoren el diseño del software a través de la documentación de errores y brinden soporte para el mantenimiento del software.

Las pruebas unitarias no son el único enfoque de pruebas de software que debe emplear en su ciclo de vida de desarrollo, es solo un muy buen lugar para comenzar.