JUnit @Ignore Test Annotation con ejemplo

Tabla de contenido:

Anonim

A veces, es posible que deba no ejecutar un método / código o un caso de prueba porque la codificación no se realiza completamente. Para esa prueba en particular, JUnit proporciona la anotación @Ignore para omitir la prueba.

En este tutorial, aprenderá:

  • ¿Qué es la anotación de prueba JUnit @Ignore?
  • Ejemplo de prueba de Junit: ignorar
  • Crear una clase de prueba simple sin ignorar una prueba
  • Ignore un método de prueba usando la anotación @Ignore
  • Usando @ ignorar anotación con condición
  • Ignore todos los métodos de prueba utilizando la anotación @Ignore.

¿Qué es la anotación de prueba JUnit @Ignore?

La anotación de prueba @Ignore se utiliza para ignorar pruebas particulares o grupos de pruebas con el fin de omitir el error de compilación.

La anotación @Ignore se puede utilizar en dos escenarios como se indica a continuación:

  1. Si desea ignorar un método de prueba, use @Ignore junto con la anotación @Test.
  2. Si desea ignorar todas las pruebas de la clase, use la anotación @Ignore en el nivel de la clase.

Puede proporcionar el motivo para deshabilitar una prueba en el parámetro opcional proporcionado por la anotación @Ignore.

Ayudará a otros desarrolladores que trabajan en el mismo código a comprender "¿por qué una prueba en particular está deshabilitada?" Cuando se solucione el problema de esa prueba en particular, simplemente puede habilitarla eliminando la anotación @Ignore .

Ejemplo de prueba de Junit: ignorar

Como se discutió en la definición anterior, puede usar la anotación @Ignore para ignorar una prueba o grupo de la prueba.

Entendamos usando un ejemplo simple y en los siguientes escenarios dados:

  1. Crear una clase de prueba simple sin ignorar una prueba.
  2. Ignore un método de prueba usando la anotación @Ignore.
  3. Ignore un método de prueba utilizando la anotación @Ignore con la razón adecuada
  4. Ignore todos los métodos de prueba utilizando la anotación @Ignore.

Crear una clase de prueba simple sin ignorar una prueba

Creemos una clase Java simple que imprima dos tipos de mensajes.

  • El primer método imprime un mensaje simple y
  • El segundo método imprime un mensaje de "hola"

JUnitMessage.java

paquete guru99.junit;public class JUnitMessage {mensaje de cadena privada;public JUnitMessage (mensaje de cadena) {this.message = mensaje;}public String printMessage () {System.out.println (mensaje);mensaje de retorno;}public String printHiMessage () {mensaje = "¡Hola!" + mensaje;System.out.println (mensaje);mensaje de retorno;}}

JunitTestExample.java

Creemos una clase de prueba JUnit para probar JUnitMessage.java.

En esta clase de prueba JUnit,

  • Primera prueba, llamada "testJUnitMessage ()" prueba el método "printMessage ()" de la clase anterior.
  • De manera similar, la segunda prueba, llamada "testJUnitHiMessage" prueba "testJUnitHiMessage" de la clase anterior.
paquete guru99.junit;importar org.junit.Assert.assertEquals estático;import org.junit.Test;public class JunitTestExample {mensaje de cadena pública = "Guru99";JUnitMessage junitMessage = new JUnitMessage (mensaje);@Pruebapublic void testJUnitMessage () {System.out.println ("El mensaje de Junit se está imprimiendo");assertEquals (mensaje, junitMessage.printMessage ());}@Pruebapublic void testJUnitHiMessage () {message = "¡Hola!" + mensaje;System.out.println ("El mensaje de alta de Junit se está imprimiendo");assertEquals (mensaje, junitMessage.printHiMessage ());}}

TestRunner.java

Creemos una clase de corredor de prueba para ejecutar JunitTestExample.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 (JunitTestExample.class);for (Failure failure: result.getFailures ()) {System.out.println (failure.toString ());}System.out.println ("Resultado ==" + resultado.wasSuccessful ());}}

Producción:

Imprimir declaración en la consola:

Junit Hola mensaje se está imprimiendo

¡Hola! Guru99

El mensaje de Junit se está imprimiendo

Guru99

Ignore un método de prueba usando la anotación @Ignore

Creemos ignorar la prueba para deshabilitar una prueba en el ejemplo anterior. Para esto, debe usar @Ignore en el método que desea omitir.

Hagámoslo para testJUnitMessage () de JunitTestExample.java

JunitTestExample.java

paquete guru99.junit;importar org.junit.Assert.assertEquals estático;import org.junit.Ignore;import org.junit.Test;public class JunitTestExample {mensaje de cadena pública = "Guru99";JUnitMessage junitMessage = new JUnitMessage (mensaje);@Ignorar@Pruebapublic void testJUnitMessage () {System.out.println ("El mensaje de Junit se está imprimiendo");assertEquals (mensaje, junitMessage.printMessage ());}@Pruebapublic void testJUnitHiMessage () {message = "¡Hola!" + mensaje;System.out.println ("El mensaje de alta de Junit se está imprimiendo");assertEquals (mensaje, junitMessage.printHiMessage ());}}

Producción:

Ejecutemos y verifiquemos el resultado del ejemplo anterior.

A continuación, el resultado muestra que se omite (deshabilita) una prueba, consulte lo que se indica a continuación:

Imprimir declaración en la consola:

Junit Hola mensaje se está imprimiendo

¡Hola! Guru99

Usando @ ignorar anotación con condición

Tomemos el ejemplo de cómo ignorar una prueba y definamos la razón para ignorarla. Como se mencionó anteriormente, para proporcionar una razón, tiene un parámetro opcional en la anotación @Ignore donde puede proporcionar la declaración de razón.

JunitTestExample.java

paquete guru99.junit;importar org.junit.Assert.assertEquals estático;import org.junit.Ignore;import org.junit.Test;public class JunitTestExample {mensaje de cadena pública = "Guru99";JUnitMessage junitMessage = new JUnitMessage (mensaje);@Ignore ("aún no está listo, ignórelo")@Pruebapublic void testJUnitMessage () {System.out.println ("El mensaje de Junit se está imprimiendo");assertEquals (mensaje, junitMessage.printMessage ());}@Pruebapublic void testJUnitHiMessage () {message = "¡Hola!" + mensaje;System.out.println ("El mensaje de alta de Junit se está imprimiendo");assertEquals (mensaje, junitMessage.printHiMessage ());}}

Producción:

Lo mismo que arriba.

Ignore todos los métodos de prueba utilizando la anotación @Ignore.

Como se mencionó anteriormente, para ignorar todas las pruebas en clase, debe usar la anotación @Ignore a nivel de clase.

Modifiquemos el ejemplo anterior para entender cómo ignorar todas las pruebas:

paquete guru99.junit;importar org.junit.Assert.assertEquals estático;import org.junit.Ignore;import org.junit.Test;@Ignorarpublic class JunitTestExample {mensaje de cadena pública = "Guru99";JUnitMessage junitMessage = new JUnitMessage (mensaje);@Pruebapublic void testJUnitMessage () {System.out.println ("El mensaje de Junit se está imprimiendo");assertEquals (mensaje, junitMessage.printMessage ());}@Pruebapublic void testJUnitHiMessage () {message = "¡Hola!" + mensaje;System.out.println ("El mensaje de alta de Junit se está imprimiendo");assertEquals (mensaje, junitMessage.printHiMessage ());}}

Producción :

Imprimir declaración en la consola:

Como ambas pruebas se omitieron al usar @Ignore a nivel de clase, no se imprimirá ninguna declaración en la consola.

Resumen:

En este tutorial, aprendió cómo ignorar una sola prueba, un grupo de pruebas o todas las pruebas usando la anotación @Ignore.

La anotación @Ignore se puede utilizar en dos escenarios como se indica a continuación:

  1. Si desea ignorar un método de prueba, use @Ignore junto con la anotación @Test.
  2. Si desea ignorar todas las pruebas de la clase, use la anotación @Ignore en el nivel de la clase.

También aprendió cómo proporcionar una declaración para hacer comprender a otros desarrolladores por qué una prueba en particular está deshabilitada.