TestNG - Ausnahmetest

TestNG bietet eine Option zum Nachverfolgen der Ausnahmebehandlung von Code. Sie können testen, ob ein Code eine gewünschte Ausnahme auslöst oder nicht. Hier dasexpectedExceptionsDer Parameter wird zusammen mit der Annotation @Test verwendet. Nun wollen wir mal sehen@Test(expectedExceptions) in Aktion.

Erstellen Sie eine Klasse

Erstellen Sie eine zu testende Java-Klasse, z. MessageUtil.java im C:\> TestNG_WORKSPACE. Fügen Sie eine Fehlerbedingung in die printMessage () -Methode ein.

/*
* 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;
   }   
}

Erstellen Sie eine Testfallklasse

  • Erstellen Sie eine Java-Testklasse, z. ExpectedExceptionTest.java.

  • Fügen Sie dem Testfall testPrintMessage () eine erwartete Ausnahme ArithmeticException hinzu.

Erstellen Sie eine Java-Klassendatei mit dem Namen ExpectedExceptionTest.java im 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());
   }
}

Erstellen Sie einen Testläufer

Erstellen Sie testng.xml in C:\>TestNG_WORKSPACE Testfälle ausführen.

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

Kompilieren Sie die MessageUtil, Testfallklassen mit javac.

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

Führen Sie nun den Test Runner aus, der Testfälle ausführt, die in der bereitgestellten Testfallklasse definiert sind.

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

Überprüfen Sie die Ausgabe. Der Testfall testPrintMessage () wird übergeben.

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

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