TestNG-テストの作成

TestNGでテストを作成するには、基本的に次の手順が必要です。

  • テストのビジネスロジックを記述し、コードにTestNGアノテーションを挿入します。

  • テストに関する情報(クラス名、実行するグ​​ループなど)をtestng.xmlファイルまたはbuild.xmlに追加します。

  • TestNGを実行します。

ここでは、POJOクラス、ビジネスロジッククラス、およびTestNGによって実行されるテストxmlを使用したTestNGテストの1つの完全な例を示します。

作成する EmployeeDetails.javaC:\>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.javaC:\>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.javaC:\> TestNG_WORKSPACEで。TestNGクラスは、少なくとも1つの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クラス。それは次のことをします-

  • 従業員の年俸をテストします。

  • 従業員の評価額をテストします。

テストを実行する前に、通常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は、というフォルダーに非常に優れたHTMLレポートを作成します。test-outputこれは、現在のディレクトリに自動的に作成されます。それを開いてindex.htmlをロードすると、下の画像のようなページが表示されます-