Annotazione di prova JUnit @Ignore con esempio

Sommario:

Anonim

A volte potrebbe essere necessario non eseguire un metodo / codice o un test case perché la codifica non viene eseguita completamente. Per quel particolare test, JUnit fornisce l' annotazione @Ignore per saltare il test.

In questo tutorial imparerai-

  • Cos'è l'annotazione di prova JUnit @Ignore
  • Junit Test Example - Ignore
  • Creazione di una semplice classe di test senza ignorare un test
  • Ignora un metodo di test utilizzando l'annotazione @Ignore
  • Utilizzando @ ignora l'annotazione con Condizione
  • Ignora tutti i metodi di test utilizzando l'annotazione @Ignore.

Cos'è l'annotazione di prova JUnit @Ignore

L'annotazione di test @Ignore viene utilizzata per ignorare test particolari o gruppi di test al fine di saltare l'errore di compilazione.

L' annotazione @Ignore può essere utilizzata in due scenari come indicato di seguito:

  1. Se vuoi ignorare un metodo di test, usa @Ignore insieme all'annotazione @Test.
  2. Se vuoi ignorare tutti i test di classe, usa l'annotazione @Ignore a livello di classe.

È possibile fornire il motivo della disabilitazione di un test nel parametro facoltativo fornito dall'annotazione @Ignore.

Aiuterà altri sviluppatori che lavorano sullo stesso pezzo di codice, a capire "perché un particolare test è disabilitato?" Quando il problema di quel particolare test è stato risolto, puoi semplicemente abilitarlo rimuovendo l'annotazione @Ignore .

Junit Test Example - Ignore

Come discusso nella definizione precedente, è possibile utilizzare l'annotazione @Ignore per ignorare un test o un gruppo del test.

Comprendiamolo usando un semplice esempio e negli scenari indicati di seguito:

  1. Creazione di una semplice classe di test senza ignorare un test.
  2. Ignora un metodo di test utilizzando l'annotazione @Ignore.
  3. Ignora un metodo di test utilizzando l'annotazione @Ignore con un motivo appropriato.
  4. Ignora tutti i metodi di test utilizzando l'annotazione @Ignore.

Creazione di una semplice classe di test senza ignorare un test

Creiamo una semplice classe Java che stampa due tipi di messaggi.

  • Il primo metodo stampa un semplice messaggio e
  • Il secondo metodo stampa un messaggio "ciao"

JUnitMessage.java

pacchetto guru99.junit;classe pubblica JUnitMessage {messaggio String privato;public JUnitMessage (String message) {this.message = messaggio;}public String printMessage () {System.out.println (messaggio);messaggio di ritorno;}public String printHiMessage () {messaggio = "Ciao!" + messaggio;System.out.println (messaggio);messaggio di ritorno;}}

JunitTestExample.java

Creiamo una classe di test JUnit per testare JUnitMessage.java.

In questa classe di test JUnit,

  • Il primo test, denominato "testJUnitMessage ()", verifica il metodo "printMessage ()" della classe precedente.
  • Allo stesso modo il secondo test, denominato "testJUnitHiMessage" verifica "testJUnitHiMessage" della classe precedente.
pacchetto guru99.junit;import statico org.junit.Assert.assertEquals;import org.junit.Test;classe pubblica JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = nuovo JUnitMessage (messaggio);@Testpublic void testJUnitMessage () {System.out.println ("Il messaggio di Junit è in stampa");assertEquals (message, junitMessage.printMessage ());}@Testpublic void testJUnitHiMessage () {messaggio = "Ciao!" + messaggio;System.out.println ("Junit Hi Message is printing");assertEquals (message, junitMessage.printHiMessage ());}}

TestRunner.java

Creiamo una classe di runner di test per eseguire JunitTestExample.java

pacchetto 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) {Risultato risultato = JUnitCore.runClasses (JunitTestExample.class);for (Failure failure: result.getFailures ()) {System.out.println (failure.toString ());}System.out.println ("Result ==" + result.wasSuccessful ());}}

Produzione:

Stampa dichiarazione sulla console:

Il messaggio di Junit Hi è in stampa

Ciao! Guru99

Il messaggio di Junit è in stampa

Guru99

Ignora un metodo di test utilizzando l'annotazione @Ignore

Creiamo ignora test per disabilitare un test nell'esempio sopra. Per questo, devi usare @Ignore nel metodo che vuoi saltare.

Facciamolo per testJUnitMessage () di JunitTestExample.java

JunitTestExample.java

pacchetto guru99.junit;import statico org.junit.Assert.assertEquals;import org.junit.Ignore;import org.junit.Test;classe pubblica JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = nuovo JUnitMessage (messaggio);@Ignorare@Testpublic void testJUnitMessage () {System.out.println ("Il messaggio di Junit è in stampa");assertEquals (message, junitMessage.printMessage ());}@Testpublic void testJUnitHiMessage () {messaggio = "Ciao!" + messaggio;System.out.println ("Junit Hi Message is printing");assertEquals (message, junitMessage.printHiMessage ());}}

Produzione:

Eseguiamo e verifichiamo l'output dell'esempio precedente.

L'output sotto mostra che un test è saltato (disabilitato), vedere come indicato di seguito:

Stampa dichiarazione sulla console:

Il messaggio di Junit Hi è in stampa

Ciao! Guru99

Utilizzando @ ignora l'annotazione con Condizione

Prendiamo l'esempio di come ignorare un test e definiamo il motivo per ignorarlo insieme ad esso. Come discusso in precedenza, per fornire un motivo si dispone di un parametro facoltativo nell'annotazione @Ignore in cui è possibile fornire la dichiarazione del motivo.

JunitTestExample.java

pacchetto guru99.junit;import statico org.junit.Assert.assertEquals;import org.junit.Ignore;import org.junit.Test;classe pubblica JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = nuovo JUnitMessage (messaggio);@Ignore ("non ancora pronto, per favore ignora.")@Testpublic void testJUnitMessage () {System.out.println ("Il messaggio di Junit è in stampa");assertEquals (message, junitMessage.printMessage ());}@Testpublic void testJUnitHiMessage () {messaggio = "Ciao!" + messaggio;System.out.println ("Junit Hi Message is printing");assertEquals (message, junitMessage.printHiMessage ());}}

Produzione:

Come sopra.

Ignora tutti i metodi di test utilizzando l'annotazione @Ignore.

Come discusso in precedenza, per ignorare tutti i test in classe, è necessario utilizzare l'annotazione @Ignore a livello di classe.

Modifichiamo l'esempio sopra per capire come ignorare tutti i test:

pacchetto guru99.junit;import statico org.junit.Assert.assertEquals;import org.junit.Ignore;import org.junit.Test;@Ignorareclasse pubblica JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = nuovo JUnitMessage (messaggio);@Testpublic void testJUnitMessage () {System.out.println ("Il messaggio di Junit è in stampa");assertEquals (message, junitMessage.printMessage ());}@Testpublic void testJUnitHiMessage () {messaggio = "Ciao!" + messaggio;System.out.println ("Junit Hi Message is printing");assertEquals (message, junitMessage.printHiMessage ());}}

Produzione :

Stampa dichiarazione sulla console:

Poiché entrambi i test venivano saltati utilizzando @Ignore a livello di classe, nessuna istruzione sarebbe stata stampata sulla console.

Sommario:

In questo tutorial, hai imparato come ignorare un singolo test, un gruppo di test o tutti i test utilizzando l'annotazione @Ignore.

L' annotazione @Ignore può essere utilizzata in due scenari come indicato di seguito:

  1. Se vuoi ignorare un metodo di test, usa @Ignore insieme all'annotazione @Test.
  2. Se vuoi ignorare tutti i test di classe, usa l'annotazione @Ignore a livello di classe.

Hai anche imparato come fornire una dichiarazione per far capire ad altri sviluppatori, perché un determinato test è disabilitato.