TestNG - Kiểm tra Viết

Viết một bài kiểm tra trong TestNG về cơ bản bao gồm các bước sau:

  • Viết logic nghiệp vụ của bài kiểm tra của bạn và chèn các chú thích TestNG vào mã của bạn.

  • Thêm thông tin về bài kiểm tra của bạn (ví dụ: tên lớp, các nhóm bạn muốn chạy, v.v.) trong tệp testng.xml hoặc trong build.xml.

  • Chạy TestNG.

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

Tạo nên EmployeeDetails.java trong C:\>TestNG_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 ra một EmpBusinessLogic.java trong C:\>TestNG_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 nhân viên.
  • lượng thẩm định của nhân viên.

Bây giờ, hãy tạo một lớp TestNG có tên TestEmployeeDetails.javatrong C: \> TestNG_WORKSPACE. Lớp TestNG là một lớp Java có chứa ít nhất một chú thích TestNG. Lớp này chứa các trường hợp thử nghiệm cần được kiểm tra. Một bài kiểm tra TestNG có thể được định cấu hình bằng chú thích @BeforeXXX và @AfterXXX (chúng ta sẽ thấy điều này trong chương TestNG - Thủ tục thực thi ), cho phép thực hiện một số logic Java trước và sau một điểm nhất định.

import org.testng.Assert;
import org.testng.annotations.Test;

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

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

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

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

  • 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.

Trước khi có thể chạy các bài kiểm tra, bạn phải định cấu hình TestNG bằng một tệp XML đặc biệt, có tên thông thường là testng.xml. Cú pháp của tệp này rất đơn giản và nội dung của nó như được hiển thị bên dưới. Tạo tệp này trongC:\>TestNG_WORKSPACE.

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name = "Suite1">
   <test name = "test1">
      <classes>
         <class name = "TestEmployeeDetails"/>
      </classes>
   </test>
</suite>

Chi tiết về tập tin trên như sau:

  • Một bộ được thể hiện bằng một tệp XML. Nó có thể chứa một hoặc nhiều bài kiểm tra và được xác định bởi thẻ <suite>.

  • Thẻ <test> đại diện cho một bài kiểm tra và có thể chứa một hoặc nhiều lớp TestNG.

  • Thẻ <class> đại diện cho một lớp TestNG. Nó là một lớp Java có chứa ít nhất một chú thích TestNG. Nó có thể chứa một hoặc nhiều phương pháp thử nghiệm.

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

C:\TestNG_WORKSPACE>javac EmployeeDetails.java EmpBusinessLogic.java TestEmployeeDetails.java

Bây giờ hãy TestNG bằng lệnh sau:

C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml

Nếu tất cả đã được thực hiện chính xác, bạn sẽ thấy kết quả kiểm tra của mình trong bảng điều khiển. Hơn nữa, TestNG tạo một báo cáo HTML rất đẹp trong một thư mục có têntest-outputđược tạo tự động trong thư mục hiện tại. Nếu bạn mở nó và tải index.html, bạn sẽ thấy một trang tương tự như trang trong hình bên dưới -