TestNG - Kiểm tra ngoại lệ

TestNG cung cấp một tùy chọn theo dõi xử lý ngoại lệ của mã. Bạn có thể kiểm tra xem mã có ném một ngoại lệ mong muốn hay không. ĐâyexpectedExceptionstham số được sử dụng cùng với chú thích @Test. Bây giờ hãy nhìn@Test(expectedExceptions) đang hoạt động.

Tạo một lớp học

Tạo một lớp java để được kiểm tra, giả sử, MessageUtil.java trong C:\> TestNG_WORKSPACE. Thêm điều kiện lỗi bên trong phương thức 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;
   }   
}

Tạo lớp trường hợp thử nghiệm

  • Tạo một lớp kiểm tra java, giả sử, ExpectedExceptionTest.java.

  • Thêm một ngoại lệ dự kiến ​​ArithmeticException vào trường hợp thử nghiệm testPrintMessage ().

Tạo tệp lớp java có tên ExpectedExceptionTest.java trong 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());
   }
}

Tạo người chạy thử nghiệm

Tạo testng.xml trong C:\>TestNG_WORKSPACE để thực thi (các) trường hợp thử nghiệm.

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

Biên dịch các lớp MessageUtil, Test case bằng javac.

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

Bây giờ, chạy Test Runner, sẽ chạy các trường hợp thử nghiệm được xác định trong lớp Test Case được cung cấp.

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

Xác minh kết quả đầu ra. testPrintMessage () test case sẽ được thông qua.

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

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