TestNG提供了跟踪代码异常处理的选项.您可以测试代码是否抛出所需的异常.这里 expectedExceptions 参数与@Test注释一起使用.现在,让我们看看 @Test(expectedExceptions)正在运行.
创建一个java类是在 C:\>中测试了 MessageUtil.java . TestNG_WORKSPACE 的.在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; } }
创建一个java测试类,比如说, ExpectedExceptionTest.java .
添加一个预期的异常ArithmeticException到testPrintMessage()测试用例.
在<b中创建一个名为 ExpectedExceptionTest.java 的java类文件> 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()); } }
在中创建testng.xml C:\> TestNG_WORKSPACE 执行测试用例.
<?xml version = "1.0" encoding = "UTF-8"?> <!DOCTYPE suite SYSTEM "https://img01.yuandaxia.cn/Content/img/tutorials/testng/testng-1.0.dtd" > <suite name = "Suite1"> <test name = "test1"> <classes> <class name = "ExpectedExceptionTest" /> </classes> </test> </suite>
使用javac编译MessageUtil,测试用例类.
C:\TestNG_WORKSPACE>javac MessageUtil.java TestJunit.java
现在,运行Test Runner,它将运行在提供的Test Case类中定义的测试用例.
C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml
验证输出. testPrintMessage()测试用例将被传递.
Inside testPrintMessage() Manisha Inside testSalutationMessage() Hi!Manisha =============================================== Suite1 Total tests run: 2, Failures: 0, Skips: 0 ===============================================