Parfois, vous devrez peut-être ne pas exécuter une méthode / un code ou un scénario de test car le codage n'est pas entièrement effectué. Pour ce test particulier, JUnit fournit l' annotation @Ignore pour ignorer le test.
Dans ce didacticiel, vous apprendrez-
- Qu'est-ce que l'annotation de test JUnit @Ignore
- Exemple de test Junit - Ignorer
- Créer une classe de test simple sans ignorer un test
- Ignorer une méthode de test à l'aide de l'annotation @Ignore
- Utilisation de l'annotation @ ignore avec Condition
- Ignorez toutes les méthodes de test utilisant l'annotation @Ignore.
Qu'est-ce que l'annotation de test JUnit @Ignore
L'annotation de test @Ignore est utilisée pour ignorer des tests particuliers ou un groupe de tests afin d'ignorer l'échec de la construction.
L' annotation @Ignore peut être utilisée dans deux scénarios comme indiqué ci-dessous:
- Si vous souhaitez ignorer une méthode de test, utilisez @Ignore avec l'annotation @Test.
- Si vous souhaitez ignorer tous les tests de classe, utilisez l'annotation @Ignore au niveau de la classe.
Vous pouvez indiquer la raison de la désactivation d'un test dans le paramètre facultatif fourni par l'annotation @Ignore.
Cela aidera d'autres développeurs travaillant sur le même morceau de code, à comprendre "pourquoi un test particulier est désactivé?" Lorsque le problème de ce test particulier est résolu, vous pouvez simplement l'activer en supprimant l' annotation @Ignore .
Exemple de test Junit - Ignorer
Comme indiqué dans la définition ci-dessus, vous pouvez utiliser l'annotation @Ignore pour ignorer un test ou un groupe de test.
Comprenons-le en utilisant un exemple simple et dans les scénarios ci-dessous:
- Créer une classe de test simple sans ignorer un test.
- Ignorez une méthode de test utilisant l'annotation @Ignore.
- Ignorez une méthode de test utilisant l'annotation @Ignore avec une raison appropriée.
- Ignorez toutes les méthodes de test utilisant l'annotation @Ignore.
Créer une classe de test simple sans ignorer un test
Créons une classe Java simple qui imprime deux types de message.
- La première méthode imprime un message simple et
- La deuxième méthode imprime un message "salut"
JUnitMessage.java
package guru99.junit;classe publique JUnitMessage {message String privé;public JUnitMessage (message de chaîne) {this.message = message;}public String printMessage () {System.out.println (message);message de retour;}public String printHiMessage () {message = "Salut!" + message;System.out.println (message);message de retour;}}
JunitTestExample.java
Créons une classe de test JUnit pour tester JUnitMessage.java.
Dans cette classe de test JUnit,
- Le premier test, nommé "testJUnitMessage ()" teste la méthode "printMessage ()" de la classe ci-dessus.
- De même, le deuxième test, nommé "testJUnitHiMessage" teste "testJUnitHiMessage" de la classe ci-dessus.
package guru99.junit;import statique org.junit.Assert.assertEquals;import org.junit.Test;classe publique JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = nouveau JUnitMessage (message);@Testpublic void testJUnitMessage () {System.out.println ("Le message Junit est en cours d'impression");assertEquals (message, junitMessage.printMessage ());}@Testpublic void testJUnitHiMessage () {message = "Salut!" + message;System.out.println ("Junit Hi Message est en cours d'impression");assertEquals (message, junitMessage.printHiMessage ());}}
TestRunner.java
Créons une classe d'exécution de test pour exécuter JunitTestExample.java
package 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) {Résultat du résultat = JUnitCore.runClasses (JunitTestExample.class);for (Échec d'échec: result.getFailures ()) {System.out.println (failure.toString ());}System.out.println ("Result ==" + result.wasSuccessful ());}}
Production:
Imprimer la déclaration sur la console:
Le message Junit Hi est en cours d'impression
Salut! Guru99
Le message Junit est en cours d'impression
Guru99
Ignorer une méthode de test à l'aide de l'annotation @Ignore
Créons un test ignorer pour désactiver un test dans l'exemple ci-dessus. Pour cela, vous devez utiliser @Ignore dans la méthode que vous souhaitez ignorer.
Faisons-le pour testJUnitMessage () de JunitTestExample.java
JunitTestExample.java
package guru99.junit;import statique org.junit.Assert.assertEquals;import org.junit.Ignore;import org.junit.Test;classe publique JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = nouveau JUnitMessage (message);@Ignorer@Testpublic void testJUnitMessage () {System.out.println ("Le message Junit est en cours d'impression");assertEquals (message, junitMessage.printMessage ());}@Testpublic void testJUnitHiMessage () {message = "Salut!" + message;System.out.println ("Junit Hi Message est en cours d'impression");assertEquals (message, junitMessage.printHiMessage ());}}
Production:
Exécutons et vérifions la sortie de l'exemple ci-dessus.
La sortie ci-dessous montre qu'un test est ignoré (désactivé), voir comme indiqué ci-dessous:
Imprimer la déclaration sur la console:
Le message Junit Hi est en cours d'impression
Salut! Guru99
Utilisation de l'annotation @ ignore avec Condition
Prenons l'exemple de la façon d'ignorer un test et de définir la raison de l'ignorer avec lui. Comme indiqué ci-dessus, pour fournir une raison, vous avez un paramètre facultatif dans l'annotation @Ignore où vous pouvez fournir la déclaration de raison.
JunitTestExample.java
package guru99.junit;import statique org.junit.Assert.assertEquals;import org.junit.Ignore;import org.junit.Test;classe publique JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = nouveau JUnitMessage (message);@Ignore ("pas encore prêt, veuillez ignorer.")@Testpublic void testJUnitMessage () {System.out.println ("Le message Junit est en cours d'impression");assertEquals (message, junitMessage.printMessage ());}@Testpublic void testJUnitHiMessage () {message = "Salut!" + message;System.out.println ("Junit Hi Message est en cours d'impression");assertEquals (message, junitMessage.printHiMessage ());}}
Production:
Comme ci-dessus.
Ignorez toutes les méthodes de test utilisant l'annotation @Ignore.
Comme indiqué ci-dessus pour ignorer tous les tests de la classe, vous devez utiliser l'annotation @Ignore au niveau de la classe.
Modifions l'exemple ci-dessus pour comprendre comment ignorer tous les tests:
package guru99.junit;import statique org.junit.Assert.assertEquals;import org.junit.Ignore;import org.junit.Test;@Ignorerclasse publique JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = nouveau JUnitMessage (message);@Testpublic void testJUnitMessage () {System.out.println ("Le message Junit est en cours d'impression");assertEquals (message, junitMessage.printMessage ());}@Testpublic void testJUnitHiMessage () {message = "Salut!" + message;System.out.println ("Junit Hi Message est en cours d'impression");assertEquals (message, junitMessage.printHiMessage ());}}
Production :
Imprimer la déclaration sur la console:
Comme les deux tests ont été ignorés en utilisant @Ignore au niveau de la classe, aucune instruction ne serait imprimée sur la console.
Résumé:
Dans ce didacticiel, vous avez appris à ignorer un seul test, un groupe de tests ou tous les tests à l'aide de l'annotation @Ignore.
L' annotation @Ignore peut être utilisée dans deux scénarios comme indiqué ci-dessous:
- Si vous souhaitez ignorer une méthode de test, utilisez @Ignore avec l'annotation @Test.
- Si vous souhaitez ignorer tous les tests de classe, utilisez l'annotation @Ignore au niveau de la classe.
Vous avez également appris à fournir une déclaration pour faire comprendre à un autre développeur pourquoi un test particulier est désactivé.