JUnit @Ignorer l'annotation de test avec exemple
Parfois, vous devrez peut-être ne pas exécuter une méthode/un code ou Cas de test car le codage n’est pas entièrement fait. Pour ce test particulier, JUnit fournit @Ignorer annotation pour ignorer le test.
Qu’est ce qu' JUnit @Ignorer l'annotation de test
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.
@Ignorer L'annotation 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 les 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 @Ignorer l'annotation.
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 tests.
Comprenons-le à l'aide d'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 à l'aide de l'annotation @Ignore.
- Ignorez une méthode de test utilisant l'annotation @Ignore pour une bonne raison.
- Ignorez toutes les méthodes de test utilisant l'annotation @Ignore.
Créer une classe de test simple sans ignorer un test
Créons un simple Java classe qui imprime deux types de messages.
- La première méthode imprime un message simple et
- La deuxième méthode imprime un message « salut »
JUnitMessage.java
package guru99.junit; public class JUnitMessage { private String message; public JUnitMessage(String message) { this.message = message; } public String printMessage(){ System.out.println(message); return message; } public String printHiMessage(){ message="Hi!"+ message; System.out.println(message); return message; } }
Exemple de test Junit.java
Créons un JUnit classe de test à tester JUnitMessage.java.
Dans ce nouvel article concernant notre nouveau projet JUnit classe d'essai,
- 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 static org.junit.Assert.assertEquals; import org.junit.Test; public class JunitTestExample { public String message = "Guru99"; JUnitMessage junitMessage = new JUnitMessage(message); @Test public void testJUnitMessage() { System.out.println("Junit Message is printing"); assertEquals(message, junitMessage.printMessage()); } @Test public void testJUnitHiMessage() { message="Hi!" +message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); } }
TestRunner.java
Créons une classe d'exécuteur de tests 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) { Result result = JUnitCore.runClasses(JunitTestExample.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println("Result=="+result.wasSuccessful()); } }
Sortie :
Imprimer la déclaration sur la console :
Junit Salut Le message 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 ignoré 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 testerJUnitMessage() de JunitTestExample.java
Exemple de test Junit.java
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Ignore; import org.junit.Test; public class JunitTestExample { public String message = "Guru99"; JUnitMessage junitMessage = new JUnitMessage(message); @Ignore @Test public void testJUnitMessage() { System.out.println("Junit Message is printing "); assertEquals(message, junitMessage.printMessage()); } @Test public void testJUnitHiMessage() { message="Hi!" +message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); } }
Sortie :
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 :
Junit Salut Le message est en cours d'impression
Salut! Guru99
Utilisation de l'annotation @ignorer avec Condition
Prenons l'exemple de la façon d'ignorer un test et définissons en même temps la raison de son ignorance. Comme indiqué ci-dessus, pour fournir une raison, vous disposez d'un paramètre facultatif dans l'annotation @Ignore où vous pouvez fournir la raison.
Exemple de test Junit.java
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Ignore; import org.junit.Test; public class JunitTestExample { public String message = "Guru99"; JUnitMessage junitMessage = new JUnitMessage(message); @Ignore("not yet ready , Please ignore.") @Test public void testJUnitMessage() { System.out.println("Junit Message is printing "); assertEquals(message, junitMessage.printMessage()); } @Test public void testJUnitHiMessage() { message="Hi!" +message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); } }
Sortie :
Comme ci-dessus.
Ignorez toutes les méthodes de test utilisant l'annotation @Ignore.
Comme indiqué ci-dessus, pour ignorer tous les tests en 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 static org.junit.Assert.assertEquals; import org.junit.Ignore; import org.junit.Test; @Ignore public class JunitTestExample { public String message = "Guru99"; JUnitMessage junitMessage = new JUnitMessage(message); @Test public void testJUnitMessage() { System.out.println("Junit Message is printing "); assertEquals(message, junitMessage.printMessage()); } @Test public void testJUnitHiMessage() { message="Hi!" +message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); } }
Sortie:
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 sera 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.
@Ignorer L'annotation 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 aux autres développeurs pourquoi un test particulier est désactivé.