TestNG - Tests schreiben
Das Schreiben eines Tests in TestNG umfasst im Wesentlichen die folgenden Schritte:
Schreiben Sie die Geschäftslogik Ihres Tests und fügen Sie TestNG-Anmerkungen in Ihren Code ein.
Fügen Sie die Informationen zu Ihrem Test (z. B. den Klassennamen, die Gruppen, die Sie ausführen möchten usw.) in eine Datei testng.xml oder in build.xml ein.
Führen Sie TestNG aus.
Hier sehen wir ein vollständiges Beispiel für TestNG-Tests mit der POJO-Klasse, der Business-Logik-Klasse und einer Test-XML, die von TestNG ausgeführt wird.
Erstellen EmployeeDetails.java im C:\>TestNG_WORKSPACE, das ist eine POJO-Klasse.
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 Klasse ist es gewohnt -
- Abrufen / Festlegen des Werts des Namens des Mitarbeiters.
- den Wert des monatlichen Gehalts des Mitarbeiters abrufen / festlegen.
- den Wert des Alters des Mitarbeiters abrufen / festlegen.
Erstelle ein EmpBusinessLogic.java im C:\>TestNG_WORKSPACE, die Geschäftslogik enthält.
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 Klasse wird zur Berechnung verwendet -
- das Jahresgehalt des Arbeitnehmers.
- die Bewertungsmenge des Mitarbeiters.
Jetzt erstellen wir eine TestNG-Klasse mit dem Namen TestEmployeeDetails.javain C: \> TestNG_WORKSPACE. Eine TestNG-Klasse ist eine Java-Klasse, die mindestens eine TestNG-Annotation enthält. Diese Klasse enthält zu testende Testfälle. Ein TestNG-Test kann durch Annotationen @BeforeXXX und @AfterXXX konfiguriert werden (wir werden dies im Kapitel TestNG - Ausführungsverfahren sehen ), mit dem vor und nach einem bestimmten Punkt eine Java-Logik ausgeführt werden kann.
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 Klasse wird zum Testen der Methoden von verwendet EmpBusinessLogicKlasse. Es macht das Folgende -
Testet das Jahresgehalt des Mitarbeiters.
Testet den Bewertungsbetrag des Mitarbeiters.
Bevor Sie die Tests ausführen können, müssen Sie TestNG mithilfe einer speziellen XML-Datei mit dem herkömmlichen Namen testng.xml konfigurieren. Die Syntax für diese Datei ist sehr einfach und der Inhalt ist wie folgt. Erstellen Sie diese Datei inC:\>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>
Details der obigen Datei sind wie folgt:
Eine Suite wird durch eine XML-Datei dargestellt. Es kann einen oder mehrere Tests enthalten und wird durch das <suite> -Tag definiert.
Das Tag <test> repräsentiert einen Test und kann eine oder mehrere TestNG-Klassen enthalten.
Das <class> -Tag repräsentiert eine TestNG-Klasse. Es ist eine Java-Klasse, die mindestens eine TestNG-Annotation enthält. Es kann eine oder mehrere Testmethoden enthalten.
Kompilieren Sie die Testfallklassen mit javac.
C:\TestNG_WORKSPACE>javac EmployeeDetails.java EmpBusinessLogic.java TestEmployeeDetails.java
Jetzt TestNG mit folgendem Befehl -
C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml
Wenn alles richtig gemacht wurde, sollten Sie die Ergebnisse Ihrer Tests in der Konsole sehen. Darüber hinaus erstellt TestNG einen sehr schönen HTML-Bericht in einem Ordner namenstest-outputdas wird automatisch im aktuellen Verzeichnis erstellt. Wenn Sie es öffnen und index.html laden, sehen Sie eine Seite ähnlich der im Bild unten -