Учебники

TestNG — Написание тестов

Написание теста в TestNG в основном включает в себя следующие шаги:

  • Напишите бизнес-логику своего теста и вставьте аннотации TestNG в свой код.

  • Добавьте информацию о вашем тесте (например, имя класса, группы, которые вы хотите запустить, и т. Д.) В файле testng.xml или в build.xml.

  • Запустите TestNG.

Напишите бизнес-логику своего теста и вставьте аннотации TestNG в свой код.

Добавьте информацию о вашем тесте (например, имя класса, группы, которые вы хотите запустить, и т. Д.) В файле testng.xml или в build.xml.

Запустите TestNG.

Здесь мы увидим один полный пример тестирования TestNG с использованием класса POJO, класса Business logic и test xml, который будет запускаться TestNG.

Создайте 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 используется для —

  • получить / установить значение имени сотрудника.
  • получить / установить значение месячной зарплаты сотрудника.
  • получить / установить значение возраста работника.

Создайте 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. Этот класс содержит контрольные примеры для тестирования. Тест 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, условно названный testng.xml. Синтаксис этого файла очень прост, а его содержимое показано ниже. Создайте этот файл в 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>

Детали вышеупомянутого файла следующие:

  • Набор представлен одним XML-файлом. Он может содержать один или несколько тестов и определяется тегом <suite>.

  • Тег <test> представляет один тест и может содержать один или несколько классов TestNG.

  • Тег <class> представляет класс TestNG. Это класс Java, который содержит хотя бы одну аннотацию TestNG. Он может содержать один или несколько методов тестирования.

Набор представлен одним XML-файлом. Он может содержать один или несколько тестов и определяется тегом <suite>.

Тег <test> представляет один тест и может содержать один или несколько классов TestNG.

Тег <class> представляет класс TestNG. Это класс Java, который содержит хотя бы одну аннотацию TestNG. Он может содержать один или несколько методов тестирования.

Скомпилируйте классы Test case, используя 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, вы увидите страницу, похожую на ту, что изображена на картинке ниже —