TestNG異常測試
TestNG跟蹤異常處理代碼提供了一個選項。可以測試是否需要代碼拋出異常或不拋出。 @Test注釋expectedExceptions 參數一起使用。現在,讓我們來看看@Test(expectedExceptions)在動作中。
創建一個類
-
創建一個Java類進行測試說MessageUtil.java 在 C: > 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()測試用例的預期異常。
創建一個Java類文件名ExpectedExceptionTest.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 "http://testng.org/testng-1.0.dtd" > <suite name="Suite1"> <test name="test1"> <classes> <class name="ExpectedExceptionTest" /> </classes> </test> </suite>
編譯MessageUtil 測試用例類使用javac
C:TestNG_WORKSPACE>javac MessageUtil.java TestJunit.java
現在,運行測試運行,這將運行提供的測試用例類中定義的測試用例。
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 ===============================================