JUnit - Kiểm tra ngoại lệ

JUnit cung cấp một tùy chọn theo dõi việc 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. Cácexpectedtham số được sử dụng cùng với chú thích @Test. Hãy để chúng tôi xem @Test (dự kiến) đ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: \> JUNIT_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 thử nghiệm java được gọi là TestJunit.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 TestJunit.java trong C: \> JUNIT_WORKSPACE.

import org.junit.Test;
import org.junit.Ignore;
import static org.junit.Assert.assertEquals;

public class TestJunit {

   String message = "Robert";	
   MessageUtil messageUtil = new MessageUtil(message);
   
   @Test(expected = ArithmeticException.class)
   public void testPrintMessage() {	
      System.out.println("Inside testPrintMessage()");     
      messageUtil.printMessage();     
   }

   @Test
   public void testSalutationMessage() {
      System.out.println("Inside testSalutationMessage()");
      message = "Hi!" + "Robert";
      assertEquals(message,messageUtil.salutationMessage());
   }
}

Tạo lớp chạy thử nghiệm

Tạo tệp lớp java có tên TestRunner.java trong C: \> JUNIT_WORKSPACE để thực thi (các) trường hợp thử nghiệm.

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class TestRunner {
   public static void main(String[] args) {
      Result result = JUnitCore.runClasses(TestJunit.class);
		
      for (Failure failure : result.getFailures()) {
         System.out.println(failure.toString());
      }
		
      System.out.println(result.wasSuccessful());
   }
}

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

C:\JUNIT_WORKSPACE>javac MessageUtil.java TestJunit.java TestRunner.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:\JUNIT_WORKSPACE>java TestRunner

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

Inside testPrintMessage()
Robert
Inside testSalutationMessage()
Hi!Robert
true