TestNG - การทดสอบการเขียน

การเขียนแบบทดสอบใน TestNG โดยทั่วไปเกี่ยวข้องกับขั้นตอนต่อไปนี้ -

  • เขียนตรรกะทางธุรกิจของการทดสอบของคุณและใส่คำอธิบายประกอบ TestNG ในโค้ดของคุณ

  • เพิ่มข้อมูลเกี่ยวกับการทดสอบของคุณ (เช่นชื่อคลาสกลุ่มที่คุณต้องการเรียกใช้ ฯลฯ ) ในไฟล์ testng.xml หรือใน build.xml

  • เรียกใช้ TestNG

ที่นี่เราจะเห็นตัวอย่างที่สมบูรณ์ของการทดสอบ TestNG โดยใช้คลาส POJO คลาสตรรกะทางธุรกิจและ xml การทดสอบซึ่งจะดำเนินการโดย TestNG

สร้าง EmployeeDetails.java ใน C:\>TestNG_WORKSPACEซึ่งเป็นคลาส 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 คลาสใช้เพื่อ -

  • รับ / กำหนดมูลค่าของชื่อพนักงาน
  • รับ / กำหนดมูลค่าเงินเดือนของพนักงานทุกเดือน
  • รับ / กำหนดมูลค่าตามอายุของพนักงาน

สร้างไฟล์ EmpBusinessLogic.java ใน C:\>TestNG_WORKSPACEซึ่งประกอบด้วยตรรกะทางธุรกิจ

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 คลาสใช้สำหรับคำนวณ -

  • เงินเดือนประจำปีของพนักงาน
  • จำนวนเงินประเมินของพนักงาน

ตอนนี้เรามาสร้างคลาส TestNG ที่เรียกว่า TestEmployeeDetails.javaใน C: \> TestNG_WORKSPACE คลาส TestNG เป็นคลาส Java ที่มีคำอธิบายประกอบ TestNG อย่างน้อยหนึ่งรายการ คลาสนี้ประกอบด้วยกรณีทดสอบที่จะทดสอบ การทดสอบ TestNG สามารถกำหนดค่าได้ด้วยคำอธิบายประกอบ @BeforeXXX และ @AfterXXX (เราจะเห็นสิ่งนี้ในบทTestNG - ขั้นตอนการดำเนินการ ) ซึ่งอนุญาตให้ดำเนินการตรรกะ Java ก่อนและหลังจุดหนึ่ง

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 คลาสใช้สำหรับทดสอบวิธีการของ EmpBusinessLogicชั้นเรียน. มันทำสิ่งต่อไปนี้ -

  • ทดสอบเงินเดือนประจำปีของพนักงาน

  • ทดสอบจำนวนเงินประเมินของพนักงาน

ก่อนที่คุณจะสามารถเรียกใช้การทดสอบคุณต้องกำหนดค่า TestNG โดยใช้ไฟล์ XML พิเศษชื่อ testng.xml ตามอัตภาพ ไวยากรณ์สำหรับไฟล์นี้ง่ายมากและมีเนื้อหาตามที่แสดงด้านล่าง สร้างไฟล์นี้ในC:\>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>

รายละเอียดของไฟล์ด้านบนมีดังนี้ -

  • ชุดจะแสดงโดยไฟล์ XML หนึ่งไฟล์ สามารถมีการทดสอบตั้งแต่หนึ่งรายการขึ้นไปและกำหนดโดยแท็ก <suite>

  • แท็ก <ทดสอบ> แสดงถึงการทดสอบหนึ่งรายการและสามารถมีคลาส TestNG ได้มากกว่าหนึ่งคลาส

  • แท็ก <class> แสดงถึงคลาส TestNG เป็นคลาส Java ที่มีคำอธิบายประกอบ TestNG อย่างน้อยหนึ่งรายการ สามารถมีวิธีการทดสอบอย่างน้อยหนึ่งวิธี

รวบรวมคลาสกรณีทดสอบโดยใช้ javac

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

ตอนนี้ TestNG ด้วยคำสั่งต่อไปนี้ -

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

หากทำทุกอย่างถูกต้องคุณจะเห็นผลการทดสอบของคุณในคอนโซล นอกจากนี้ TestNG ยังสร้างรายงาน HTML ที่ดีมากในโฟลเดอร์ที่เรียกว่าtest-outputที่สร้างขึ้นโดยอัตโนมัติในไดเร็กทอรีปัจจุบัน หากคุณเปิดและโหลด index.html คุณจะเห็นหน้าที่คล้ายกับหน้าในภาพด้านล่าง -