TestNG - Pruebas de escritura
Escribir una prueba en TestNG básicamente implica los siguientes pasos:
Escriba la lógica empresarial de su prueba e inserte anotaciones TestNG en su código.
Agregue la información sobre su prueba (por ejemplo, el nombre de la clase, los grupos que desea ejecutar, etc.) en un archivo testng.xml o en build.xml.
Ejecute TestNG.
Aquí, veremos un ejemplo completo de pruebas de TestNG utilizando la clase POJO, la clase de lógica empresarial y un xml de prueba, que será ejecutado por TestNG.
Crear EmployeeDetails.java en C:\>TestNG_WORKSPACE, que es una clase 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 la clase se usa para -
- obtener / establecer el valor del nombre del empleado.
- obtener / establecer el valor del salario mensual del empleado.
- obtener / establecer el valor de la edad del empleado.
Crear un EmpBusinessLogic.java en C:\>TestNG_WORKSPACE, que contiene lógica empresarial.
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 la clase se usa para calcular -
- el salario anual del empleado.
- el monto de tasación del empleado.
Ahora, creemos una clase TestNG llamada TestEmployeeDetails.javaen C: \> TestNG_WORKSPACE. Una clase TestNG es una clase Java que contiene al menos una anotación TestNG. Esta clase contiene casos de prueba para probar. Una prueba TestNG se puede configurar mediante las anotaciones @BeforeXXX y @AfterXXX (esto lo veremos en el capítulo TestNG - Procedimiento de ejecución ), lo que permite realizar alguna lógica Java antes y después de un determinado punto.
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 La clase se utiliza para probar los métodos de EmpBusinessLogicclase. Hace lo siguiente:
Prueba el salario anual del empleado.
Prueba el monto de tasación del empleado.
Antes de que pueda ejecutar las pruebas, debe configurar TestNG utilizando un archivo XML especial, denominado convencionalmente testng.xml. La sintaxis de este archivo es muy simple y su contenido se muestra a continuación. Crea este archivo enC:\>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>
Los detalles del archivo anterior son los siguientes:
Una suite está representada por un archivo XML. Puede contener una o más pruebas y está definido por la etiqueta <suite>.
La etiqueta <test> representa una prueba y puede contener una o más clases de TestNG.
La etiqueta <class> representa una clase TestNG. Es una clase Java que contiene al menos una anotación TestNG. Puede contener uno o más métodos de prueba.
Compile las clases de casos de prueba utilizando javac.
C:\TestNG_WORKSPACE>javac EmployeeDetails.java EmpBusinessLogic.java TestEmployeeDetails.java
Ahora TestNG con el siguiente comando:
C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml
Si todo se hizo correctamente, debería ver los resultados de sus pruebas en la consola. Además, TestNG crea un informe HTML muy agradable en una carpeta llamadatest-outputque se crea automáticamente en el directorio actual. Si lo abre y carga index.html, verá una página similar a la de la imagen a continuación: