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:
- Se vuoi ignorare un metodo di test, usa @Ignore insieme all'annotazione @Test.
- 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:
- Creazione di una semplice classe di test senza ignorare un test.
- Ignora un metodo di test utilizzando l'annotazione @Ignore.
- Ignora un metodo di test utilizzando l'annotazione @Ignore con un motivo appropriato.
- 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:
- Se vuoi ignorare un metodo di test, usa @Ignore insieme all'annotazione @Test.
- 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.