Testng-writing-tests
TestNG-テストの作成
TestNGでテストを作成するには、基本的に次の手順が必要です-
- テストのビジネスロジックを記述し、コードにTestNG注釈を挿入します。
- テストに関する情報を追加します(例: クラス名、実行したいグループなど)testng.xmlファイルまたはbuild.xmlで。
- TestNGを実行します。
ここでは、POJOクラス、ビジネスロジッククラス、およびTestNGによって実行されるテストxmlを使用したTestNGテストの完全な例を確認します。
*C:\> TestNG_WORKSPACE* に *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* クラスを使用して-
- 従業員の名前の値を取得/設定します。
- 従業員の月給の値を取得/設定します。
- 従業員の年齢の値を取得/設定します。
ビジネスロジックを含む C:\> TestNG_WORKSPACE に 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* クラスは計算に使用されます-
- 従業員の年sal。
- 従業員の評価額。
それでは、C:\> TestNG_WORKSPACEに TestEmployeeDetails.java というTestNGクラスを作成しましょう。 TestNGクラスは、少なくとも1つのTestNGアノテーションを含むJavaクラスです。 このクラスには、テストするテストケースが含まれます。 TestNGテストは、@ BeforeXXXおよび@AfterXXXアノテーション(この章のリンク:/testng/testng_execution_procedure [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* クラスのメソッドのテストに使用されます。 それは次のことを行います-
- 従業員の年salをテストします。
- 従業員の評価額をテストします。
テストを実行する前に、testng.xmlという名前の特別な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>
上記のファイルの詳細は次のとおりです-
- スイートは1つのXMLファイルで表されます。 1つ以上のテストを含めることができ、<suite>タグによって定義されます。
- タグ<test>は1つのテストを表し、1つ以上のTestNGクラスを含めることができます。
- <class>タグはTestNGクラスを表します。 これは、少なくとも1つのTestNGアノテーションを含むJavaクラスです。 1つ以上のテストメソッドを含めることができます。
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は test-output というフォルダーに非常に素晴らしいHTMLレポートを作成します。このフォルダーは現在のディレクトリに自動的に作成されます。 それを開いてindexlをロードすると、下の画像のようなページが表示されます-