- TestNG 教程
- TestNG - 首頁
- TestNG - 概述
- TestNG - 環境
- TestNG -編寫測試
- TestNG - 基本註解
- TestNG - 執行流程
- TestNG - 執行測試
- TestNG - 套件測試
- TestNG - 忽略測試
- TestNG - 組測試
- TestNG - 異常測試
- TestNG - 依賴測試
- TestNG - 引數化測試
- TestNG - 執行 JUnit 測試
- TestNG - 測試結果
- TestNG - 註解轉換器
- TestNG - 斷言
- TestNG - 並行執行
- TestNG - 與 ANT 整合
- TestNG - 與 Eclipse 整合
- TestNG - TestNG 與 JUnit 的比較
- TestNG 有用資源
- TestNG - 快速指南
- TestNG - 有用資源
- TestNG - 討論
TestNG -編寫測試
在 TestNG 中編寫測試基本上包括以下步驟:
編寫測試的業務邏輯並在程式碼中插入 TestNG 註解。
在 testng.xml 檔案或 build.xml 檔案中新增有關測試的資訊(例如,類名、要執行的組等)。
執行 TestNG。
在這裡,我們將看到一個使用 POJO 類、業務邏輯類和測試 XML 的完整 TestNG 測試示例,TestNG 將執行該示例。
在 /work/testng/src 中建立EmployeeDetails.java,這是一個 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 類用於:
- 獲取/設定員工姓名的值。
- 獲取/設定員工月薪的值。
- 獲取/設定員工年齡的值。
在 /work/testng/src 中建立EmpBusinessLogic.java,其中包含業務邏輯。
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 類用於計算:
- 員工的年薪。
- 員工的考核金額。
現在,讓我們在 /work/testng/src 中建立一個名為 TestEmployeeDetails.java 的 TestNG 類。TestNG 類是一個包含至少一個 TestNG 註解的 Java 類。此類包含要測試的測試用例。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 類的方法。它執行以下操作:
測試員工的年薪。
測試員工的考核金額。
在執行測試之前,必須使用特殊的 XML 檔案(通常命名為 testng.xml)配置 TestNG。此檔案的語法非常簡單,其內容如下所示。在 /work/testng/src 中建立此檔案。
<?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> 標記定義。
<test> 標記表示一個測試,可以包含一個或多個 TestNG 類。
<class> 標記表示一個 TestNG 類。它是一個包含至少一個 TestNG 註解的 Java 類。它可以包含一個或多個測試方法。
使用 javac 編譯測試用例類。
/work/testng/src$ javac EmployeeDetails.java EmpBusinessLogic.java TestEmployeeDetails.java
現在使用以下命令執行 TestNG:
/work/testng/src$ java org.testng.TestNG testng.xml
如果所有操作都正確完成,您應該在控制檯中看到測試結果。此外,TestNG 在當前目錄中自動建立的名為 test-output 的資料夾中建立一個非常好的 HTML 報告。如果您開啟它並載入 index.html,您將看到類似於下圖中的頁面: