TestNG - Test d'exception

TestNG fournit une option de suivi de la gestion des exceptions du code. Vous pouvez tester si un code lève une exception souhaitée ou non. Ici leexpectedExceptionsLe paramètre est utilisé avec l'annotation @Test. Maintenant, voyons@Test(expectedExceptions) en action.

Créer une classe

Créez une classe java à tester, disons, MessageUtil.java dans C:\> TestNG_WORKSPACE. Ajoutez une condition d'erreur dans la méthode printMessage ().

/*
* This class prints the given message on console.
*/
public class MessageUtil {

   private String message;

   //Constructor
   //@param message to be printed
   public MessageUtil(String message) {
      this.message = message; 
   }

   // prints the message
   public void printMessage() {
      System.out.println(message);
      int a =0;
      int b = 1/a;
   }   

   // add "Hi!" to the message
   public String salutationMessage() {
      message = "Hi!" + message;
      System.out.println(message);
      return message;
   }   
}

Créer une classe de cas de test

  • Créez une classe de test java, par exemple, ExpectedExceptionTest.java.

  • Ajoutez une exception ArithmeticException attendue au scénario de test testPrintMessage ().

Créez un fichier de classe Java nommé ExpectedExceptionTest.java dans C:\> TestNG_WORKSPACE.

import org.testng.Assert;
import org.testng.annotations.Test;

public class ExpectedExceptionTest {
   String message = "Manisha";	
   MessageUtil messageUtil = new MessageUtil(message);
	   
   @Test(expectedExceptions = ArithmeticException.class)
   public void testPrintMessage() {	
      System.out.println("Inside testPrintMessage()");     
      messageUtil.printMessage();     
   }
   
   @Test
   public void testSalutationMessage() {
      System.out.println("Inside testSalutationMessage()");
      message = "Hi!" + "Manisha";
      Assert.assertEquals(message,messageUtil.salutationMessage());
   }
}

Créer un testeur

Créez testng.xml dans C:\>TestNG_WORKSPACE pour exécuter des cas de test.

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name = "Suite1">
   <test name = "test1">
      <classes>
         <class name = "ExpectedExceptionTest" />
      </classes>
   </test>
</suite>

Compilez les classes de cas de test MessageUtil à l'aide de javac.

C:\TestNG_WORKSPACE>javac MessageUtil.java TestJunit.java

Maintenant, exécutez Test Runner, qui exécutera les cas de test définis dans la classe de cas de test fournie.

C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml

Vérifiez la sortie. Le cas de test testPrintMessage () sera passé.

Inside testPrintMessage()
Manisha
Inside testSalutationMessage()
Hi!Manisha

===============================================
Suite1
Total tests run: 2, Failures: 0, Skips: 0
===============================================