TestNG 如何使用注解创建测试用例

TestNG 如何使用注解创建测试用例

在TestNG中编写测试基本上涉及以下步骤−

  • 编写测试的业务逻辑并在代码中插入TestNG注解。

  • 在testng.xml文件或build.xml文件中添加有关测试的信息(例如类名称,要运行的组等)。

  • 运行TestNG。

在本文中,我们将使用POJO类,业务逻辑类和一个测试xml的TestNG测试来看一个完整的示例,该示例将由TestNG运行。

步骤

  • 步骤1 :在src中创建 EmployeeDetails.java ,它是一个POJO类,如程序代码所示。

EmployeeDetails类用于−

  • 获取/设置雇员姓名的值。

  • 获取/设置雇员的月薪。

  • 获取/设置雇员的年龄。

    • 步骤2 :在src中创建 EmpBusinessLogic.java ,其中包含业务逻辑。

EmpBusinessLogic类用于计算−

  • 员工的年薪。

  • 员工的考核金额。

    • 步骤3 :在src中创建一个名为 TestEmployeeDetails.java 的TestNG类。 TestNG类是包含至少一个TestNG注解的Java类。该类包含要测试的测试用例。 TestNG测试还可以通过@BeforeXXX和@AfterXXX注解进行配置。

TestEmployeeDetails类用于测试EmpBusinessLogic类的方法。它执行以下操作−

  • 测试雇员的年薪。

  • 测试雇员的考核金额。

    • 步骤4 :现在,在IDE中创建和运行testNG.xml或直接testNG类,或者使用命令行编译和运行它。

在输出中,用户可以看到预期和实际的考核金额以及工资。

示例

以下是通用TestNG类的代码− EmployeeDetails:

src / EmployeeDetails.java

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;
    }
}

以下是通用 TestNG 类的代码 − EmpBusinessLogic:

src/EmpBusinessLogic.java

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;
    }
}

下面是常见的TestNG类的代码− TestEmployeeDetails:

src/TestEmployeeDetails.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");
        System.out.println("Expected Appraisal:500;"+" Actual Appraisal:"+appraisal);
    }

    // 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");
        System.out.println("Expected Salary:9600;"+" Actual Salary:"+salary);
    }
}

testng.xml

这是一个用于组织和运行TestNG测试用例的配置文件。

当需要执行有限的测试而不是整个测试套件时,它非常方便。

<?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>

输出

Expected Appraisal:500; Actual Appraisal:500.0
Expected Salary:9600; Actual Salary:96000.0

===============================================
Suite1
Total tests run: 2, Passes: 2, Failures: 0, Skips: 0
===============================================

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程