Написание теста в 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, вы увидите страницу, похожую на ту, что изображена на картинке ниже —