位置:首頁 > Java技術 > TestNG教學 > TestNG編寫測試

TestNG編寫測試

編寫TestNG測試基本上包括以下步驟:

  • 測試和編寫業務邏輯,在代碼中插入TestNG的注解..

  • 添加一個testng.xml文件或build.xml中在測試信息(例如類名,您想要運行的組,等..)

  • 運行 TestNG.

在這裡,我們將看到一個完整的例子了TestNG測試使用POJO類,業務邏輯類,將通過TestNG的運行測試XML。

創建 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 類是用來

  • get/set 員工的名字的值

  • get/set 員工月薪的值

  • get/set員工年齡的值

創建一個 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的注解。 這個類包含測試用例進行測試。可以配置,@BeforeXXX和@AfterXXX注解了TestNG測試 (在本章,我們會看到這樣TestNG - Execution Procedure) 它允許執行一些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,它

  • 雇員測試的年薪

  • 測試評估員工的金額

之前,你可以運行測試,但是必須使用特殊的XML文件,通常命名為testng.xml配置TestNG。此文件的語法很簡單,其內容如下。創建這個文件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>

以上文件的詳情如下:

  • suite代表一個XML文件。它可以包含一個或多個測試,並被定義由<suite>標記

  • 標簽<test>代表一個測試,並可以包含一個或多個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,會看到類似下麵的圖片中的一個頁麵:

Writing Tests