Annotation de test JUnit @Ignore avec exemple

Table des matières:

Anonim

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:

  1. Si vous souhaitez ignorer une méthode de test, utilisez @Ignore avec l'annotation @Test.
  2. 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:

  1. Créer une classe de test simple sans ignorer un test.
  2. Ignorez une méthode de test utilisant l'annotation @Ignore.
  3. Ignorez une méthode de test utilisant l'annotation @Ignore avec une raison appropriée.
  4. 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:

  1. Si vous souhaitez ignorer une méthode de test, utilisez @Ignore avec l'annotation @Test.
  2. 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é.