Java: Ngoại lệ (Exception) test


Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên

JUnit cung cấp một tùy chọn để theo dõi quá trình xử lý ngoại lệ của mã lệnh. Bạn có thể kiểm tra xem mã lệnh có ném ra một ngoại lệ mong muốn hay không. Tham số expected được sử dụng cùng với annotation @Test. Ta hãy xem @Test(expected) hoạt động ra sao.

Tạo một lớp

Tạo một lớp java để được test, chẳng hạn như 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 test case

Tạo một lớp test java có tên TestJunit.java. Thêm một ngoại lệ mong muốn là ​​ArithmeticException vào test case 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 test runner

Tạo file java có tên TestRunner.java trong C:\>JUNIT_WORKSPACE để thực thi (các) test case.

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, nó sẽ chạy các test case được xác định trong lớp Test Case đã cung cấp.

C:\JUNIT_WORKSPACE>java TestRunner

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

Inside testPrintMessage()
Robert
Inside testSalutationMessage()
Hi!Robert
true
» Tiếp: Tham số hóa test
« Trước: Thời gian test
Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên
Copied !!!