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,會看到類似下麵的圖片中的一個頁麵: