JUnit - Viết bài kiểm tra

Ở đây chúng ta sẽ thấy một ví dụ hoàn chỉnh về kiểm thử JUnit bằng cách sử dụng lớp POJO, lớp logic nghiệp vụ và một lớp thử nghiệm, sẽ được chạy bởi trình chạy thử nghiệm.

Tạo nên EmployeeDetails.java trong C: \> JUNIT_WORKSPACE, là một lớp POJO.

public class EmployeeDetails {

   private String name;
   private double monthlySalary;
   private int age;
   
   /**
   * @return the name
   */
	
   public String getName() {
      return name;
   }
	
   /**
   * @param name the name to set
   */
	
   public void setName(String name) {
      this.name = name;
   }
	
   /**
   * @return the monthlySalary
   */
	
   public double getMonthlySalary() {
      return monthlySalary;
   }
	
   /**
   * @param monthlySalary the monthlySalary to set
   */
	
   public void setMonthlySalary(double monthlySalary) {
      this.monthlySalary = monthlySalary;
   }
	
   /**
   * @return the age
   */
   public int getAge() {
      return age;
   }
	
   /**
   * @param age the age to set
   */
   public void setAge(int age) {
      this.age = age;
   }
}

EmployeeDetails lớp đã quen với -

  • lấy / đặt giá trị của tên nhân viên.
  • lấy / đặt giá trị tiền lương hàng tháng của nhân viên.
  • lấy / đặt giá trị tuổi của nhân viên.

Tạo một tệp có tên EmpBusinessLogic.java trong C: \> JUNIT_WORKSPACE, chứa logic nghiệp vụ.

public class EmpBusinessLogic {
   // Calculate the yearly salary of employee
   public double calculateYearlySalary(EmployeeDetails employeeDetails) {
      double yearlySalary = 0;
      yearlySalary = employeeDetails.getMonthlySalary() * 12;
      return yearlySalary;
   }
	
   // Calculate the appraisal amount of employee
   public double calculateAppraisal(EmployeeDetails employeeDetails) {
      double appraisal = 0;
		
      if(employeeDetails.getMonthlySalary() < 10000){
         appraisal = 500;
      }else{
         appraisal = 1000;
      }
		
      return appraisal;
   }
}

EmpBusinessLogic lớp được sử dụng để tính toán -

  • lương hàng năm của một nhân viên.
  • số lượng thẩm định của một nhân viên.

Tạo một tệp có tên TestEmployeeDetails.java trong C: \> JUNIT_WORKSPACE, chứa các trường hợp thử nghiệm sẽ được kiểm tra.

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

public class TestEmployeeDetails {
   EmpBusinessLogic empBusinessLogic = new EmpBusinessLogic();
   EmployeeDetails employee = new EmployeeDetails();

   //test to check appraisal
   @Test
   public void testCalculateAppriasal() {
      employee.setName("Rajeev");
      employee.setAge(25);
      employee.setMonthlySalary(8000);
		
      double appraisal = empBusinessLogic.calculateAppraisal(employee);
      assertEquals(500, appraisal, 0.0);
   }

   // test to check yearly salary
   @Test
   public void testCalculateYearlySalary() {
      employee.setName("Rajeev");
      employee.setAge(25);
      employee.setMonthlySalary(8000);
		
      double salary = empBusinessLogic.calculateYearlySalary(employee);
      assertEquals(96000, salary, 0.0);
   }
}

TestEmployeeDetails lớp được sử dụng để kiểm tra các phương pháp của EmpBusinessLogiclớp học. Nó

  • kiểm tra mức lương hàng năm của nhân viên.
  • kiểm tra số lượng thẩm định của nhân viên.

Tiếp theo, tạo một lớp java được đặt tên là 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(TestEmployeeDetails.class);
		
      for (Failure failure : result.getFailures()) {
         System.out.println(failure.toString());
      }
		
      System.out.println(result.wasSuccessful());
   }
}

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

C:\JUNIT_WORKSPACE>javac EmployeeDetails.java 
EmpBusinessLogic.java TestEmployeeDetails.java TestRunner.java

Bây giờ chạy Test Runner, sẽ chạy 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.

true