JUnit Test d'exception attendu : @Test (attendu)

JUnit fournit la possibilité de tracer l'exception et également de vérifier si le code génère l'exception attendue ou non.

Junit4 fournit un moyen simple et lisible pour tester les exceptions, vous pouvez utiliser

  • Paramètre facultatif (attendu) de l'annotation @test et
  • Pour retracer les informations, « fail() » peut être utilisé

Si USP,EP, BP exception, vous devez vous assurer que la classe d'exception que vous fournissez dans ce paramètre facultatif de @testannotation est le même. C'est parce que vous attendez une exception de la méthode que vous utilisez. Tests unitaires, sinon notre JUnit le test échouerait.

Exemple @ Test (expected = IllegalArgumentException.class)

En utilisant le paramètre « attendu », vous pouvez spécifier le nom de l'exception que notre test peut lancer. Dans l'exemple ci-dessus, vous utilisez "Exception d'argument illégal" qui sera lancé par le test si un développeur utilise un argument qui n'est pas autorisé.

Exemple utilisant @test (attendu)

Comprenons les tests d'exception en créant un Java classe avec une méthode qui génère une exception. Vous la gérerez et la testerez dans une classe de test. Considérez JUnitMessage.java ayant une méthode qui effectue simplement une opération mathématique basée sur les entrées reçues par l'utilisateur. Si un argument illégal est entré, il lancera « ArithmeticException ». Voir ci-dessous:

Exemple utilisant @Test

package guru99.junit;

public class JUnitMessage{

	private String message;

	public JUnitMessage(String message) {
		this.message = message;
	}

public void printMessage(){

	System.out.println(message); 
	int divide=1/0;

}

public String printHiMessage(){ 

	message="Hi!" + message;
	
	System.out.println(message);

	return message;
}

}

Explication du code :

  • Ligne de code 7 : Création d'un constructeur paramétré avec initialisation de champ.
  • Ligne de code 11-14 : Création d'une méthode d'opération mathématique.
  • Ligne de code 18 : Création d'une autre méthode pour imprimer un message.
  • Ligne de code 20 : Création d'une nouvelle chaîne pour imprimer un message.
  • Ligne de code 21 : Impression du nouveau message créé à la ligne 20.

Créons une classe de test pour la classe Java ci-dessus afin de vérifier l'exception.

Voir ci-dessous la classe de test pour l'exception de test unitaire (ArithmeticException ici) lancée depuis la classe Java ci-dessus :

AirthematicTest.java

Test Airthématique.Java

package guru99.junit;

import static org.junit.Assert.assertEquals;

import org.junit.Test;

public class AirthematicTest {

	public String message = "Saurabh";
	
	JUnitMessage junitMessage = new JUnitMessage(message);
	
	@Test(expected = ArithmeticException.class)
	public void testJUnitMessage(){

		System.out.println("Junit Message is printing ");
		junitMessage.printMessage();

	}

	@Test
	public void testJUnitHiMessage(){ 
		message="Hi!" + message;
		System.out.println("Junit Message is printing ");
		assertEquals(message, junitMessage.printMessage());
	
	}
}

Explication du code :

  • Ligne de code 13 : Utilisation de l'annotation @Test pour créer notre test. Lorsque vous exécutez la méthode des classes ci-dessus, elle invoquera une opération mathématique. Ici, une exception arithmétique est attendue, vous la répertoriez donc en tant que paramètre dans @Test.
  • Ligne de code 17 : Invocation de printMessage() JUnitMessage.java
  • Ligne de code 18 : Création d'une autre méthode pour imprimer le message HI.

Si vous exécutez cette classe de test, la méthode de test est exécutée avec chaque paramètre défini. Dans l'exemple ci-dessus, la méthode de test est exécutée cinq fois.

Exécutons-le et vérifions le résultat. Voir ci-dessous la classe du lanceur de tests à exécuter Exemple de test Junit.java

Sortie :

Voici le résultat qui montre un test réussi sans trace d'échec, comme indiqué ci-dessous :

Test Airthématique.Java Sortie

Résumé

  • Le test d'exception est une fonctionnalité spéciale introduite dans JUnit4. Dans ce didacticiel, vous avez appris à tester une exception dans JUnit en utilisant @test (sauf)
  • Junit offre la possibilité de retracer l'exception et également de vérifier si le code génère une exception ou non.
  • Pour les tests d'exception, vous pouvez utiliser
    • Paramètre facultatif (attendu) de l'annotation @test et
    • Pour retracer les informations, « fail() » peut être utilisé