Java: Bỏ qua test

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Đôi khi xảy ra tình huống là code của ta không hoàn toàn sẵn sàng trong khi chạy một test case. Kết quả là test case không thành công. Chú thích @Ignore hữu ích trong trường hợp này.

  • Phương thức test được chú thích bằng @Ignore sẽ không được thực thi.
  • Nếu một lớp test được chú thích bằng @Ignore, thì sẽ không có phương thức kiểm tra nào được thực thi.

Bây giờ, hãy xem @Ignore hoạt động thế nào.

Tạo một lớp

Tạo một lớp java để được kiểm tra, chẳng hạn như MessageUtil.java trong C:\>JUNIT_WORKSPACE.

/*
* 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 String printMessage(){
      System.out.println(message);
      return message;
   }   

   // 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, chẳng hạn như TestJunit.java.
  • Thêm một phương thức test testPrintMessage() hoặc testSalutationMessage() vào lớp test của bạn.
  • Thêm annotaion @Ignore vào phương thức testPrintMessage().

Tạo file 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);
   
   @Ignore
   @Test
   public void testPrintMessage() {
      System.out.println("Inside testPrintMessage()");
      message = "Robert";
      assertEquals(message,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ờ hãy chạy Test Runner, nó sẽ không chạy test case testPrintMessage() đượ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() không được kiểm tra.

Inside testSalutationMessage()
Hi!Robert
true

Bây giờ, hãy cập nhật TestJunit trong C:\>JUNIT_WORKSPACE để bỏ qua tất cả các test case. Thêm @Ignore ở cấp độ lớp.

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

@Ignore
public class TestJunit {

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

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

Biên dịch test case bằng javac:

C:\JUNIT_WORKSPACE>javac TestJunit.java

Giữ nguyên Test Runner của bạn như sau:

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());
   }
}

Bây giờ chạy Test Runner, nó sẽ không chạy bất kỳ test case nào đượ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. Không có trường hợp thử nghiệm nào được kiểm tra.

true
» Tiếp: Thời gian test
« Trước: Test suite
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!