JUnit - Khung thử nghiệm

JUnit là một Regression Testing Frameworkđược các nhà phát triển sử dụng để triển khai kiểm thử đơn vị trong Java, đồng thời đẩy nhanh tốc độ lập trình và tăng chất lượng mã. JUnit Framework có thể được tích hợp dễ dàng với một trong hai cách sau:

  • Eclipse
  • Ant
  • Maven

Các tính năng của Khung kiểm tra JUnit

Khung thử nghiệm JUnit cung cấp các tính năng quan trọng sau:

  • Fixtures
  • Bộ thử nghiệm
  • Người chạy thử
  • Các lớp JUnit

Đồ đạc

Fixtureslà trạng thái cố định của một tập hợp các đối tượng được sử dụng làm đường cơ sở để chạy các bài kiểm tra. Mục đích của bộ cố định kiểm tra là đảm bảo rằng có một môi trường cố định và nổi tiếng trong đó các thử nghiệm được chạy để các kết quả có thể lặp lại. Nó bao gồm -

  • Phương thức setUp (), chạy trước mọi lệnh gọi kiểm tra.
  • Phương thức drawDown (), chạy sau mọi phương thức thử nghiệm.

Hãy kiểm tra một ví dụ -

import junit.framework.*;

public class JavaTest extends TestCase {
   protected int value1, value2;
   
   // assigning the values
   protected void setUp(){
      value1 = 3;
      value2 = 3;
   }

   // test method to add two values
   public void testAdd(){
      double result = value1 + value2;
      assertTrue(result == 6);
   }
}

Bộ thử nghiệm

Một bộ thử nghiệm bao gồm một vài trường hợp thử nghiệm đơn vị và chạy chúng cùng nhau. Trong JUnit, cả chú thích @RunWith và @Suite đều được sử dụng để chạy thử nghiệm bộ. Dưới đây là một ví dụ sử dụng các lớp kiểm tra TestJunit1 & TestJunit2.

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

//JUnit Suite Test
@RunWith(Suite.class)

@Suite.SuiteClasses({ 
   TestJunit1.class ,TestJunit2.class
})

public class JunitTestSuite {
}
import org.junit.Test;
import org.junit.Ignore;
import static org.junit.Assert.assertEquals;

public class TestJunit1 {

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

public class TestJunit2 {

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

Người chạy thử nghiệm

Người chạy thử nghiệm được sử dụng để thực hiện các trường hợp thử nghiệm. Đây là một ví dụ giả sử lớp thử nghiệmTestJunit đã tồn tại.

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

Lớp JUnit

Các lớp JUnit là các lớp quan trọng, được sử dụng để viết và thử nghiệm các JUnits. Một số lớp quan trọng là -

  • Assert - Chứa một tập hợp các phương thức khẳng định.

  • TestCase - Chứa một trường hợp thử nghiệm xác định vật cố định để chạy nhiều thử nghiệm.

  • TestResult - Chứa các phương thức thu thập kết quả thực hiện test case.