JUnit @Ignore 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 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.

@Ignorer L'annotation 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 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 :

  1. Créer une classe de test simple sans ignorer un test.
  2. Ignorez une méthode de test à l'aide de l'annotation @Ignore.
  3. Ignorez une méthode de test utilisant l'annotation @Ignore pour une bonne raison.
  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 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;					
}    		
    		
}		

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 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 :

Créer une classe de test simple sans ignorer un test

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 testJUnitMessage() de JunitTestExample.java

JunitTestExample.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 :

Créer une classe de test simple sans ignorer un test

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.

JunitTestExample.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:

Ignorer les méthodes de test à l'aide de @Ignore Annotation

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 :

  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 aux autres développeurs pourquoi un test particulier est désactivé.