TestNG provides an option of tracing the exception handling of code.
You can test whether a code throws a desired exception or not. Here the expectedExceptions parameter is used along with the @Test annotation. Now, let's see @Test(expectedExceptions) in action.
Create a Class
- Create a java class to be tested, say, MessageUtil.java in C:\>TestNG_WORKSPACE.
- Add an error condition inside the printMessage() method.
/* * 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; } }
Create Test Case Class
- Create a java test class, say, ExpectedExceptionTest.java.
- Add an expected exception ArithmeticException to the testPrintMessage() test case.
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()); } }
Create Test Runner
Create testng.xml in C:\>TestNG_WORKSPACE to execute test case(s).<?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>Compile the MessageUtil, Test case classes using
javac
.C:\TestNG_WORKSPACE>javac MessageUtil.java TestJunit.javaNow, run the Test Runner, which will run test cases defined in the provided Test Case class.
C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xmlVerify the output. testPrintMessage() test case will be passed.
Inside testPrintMessage() Manisha Inside testSalutationMessage() Hi!Manisha =============================================== Suite1 Total tests run: 2, Failures: 0, Skips: 0 ===============================================
No comments:
Post a Comment