You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将TestNG DataProvider数据存入POJO类并在@Test方法中传递对象

没问题!要实现把Excel里的用户名、密码封装成POJO后传给@Test方法,核心是调整你的**@DataProvider**的返回逻辑——让它返回DataObject类型的对象数组,而不是原来的字符串数组。下面是具体的实现步骤:

1. 先修正并完善你的POJO类

首先注意你之前的代码里有个拼写错误(getPasswrod()),先把DataObject类修正完整:

public class DataObject {
    private String userName;
    private String password;

    // Getter & Setter 方法
    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() { // 修正拼写错误
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

2. 修改@DataProvider方法,返回POJO对象数组

原来的DataProvider应该是从Excel读取每行的两个字符串,现在我们把这两个值封装成DataObject实例,再返回对应的对象数组。假设你已经有读取Excel的逻辑,调整后的代码大概是这样:

import org.testng.annotations.DataProvider;

@DataProvider(name = "testautomation")
public Object[][] getDataFromExcel() throws Exception {
    // 这里是你原本读取Excel的逻辑,比如获取所有行的用户名和密码
    // 示例:假设你已经把Excel数据读到了一个List<String[]>里
    List<String[]> excelRows = yourExcelReadingUtility(); // 替换成你实际的读取方法

    // 将读取到的字符串数据转换成DataObject数组
    Object[][] testData = new Object[excelRows.size()][1];
    for (int i = 0; i < excelRows.size(); i++) {
        String[] rowData = excelRows.get(i);
        DataObject dataObj = new DataObject();
        dataObj.setUserName(rowData[0]);
        dataObj.setPassword(rowData[1]);
        testData[i][0] = dataObj;
    }

    return testData;
}

3. 调整@Test方法,接收POJO参数

现在你的测试方法就可以直接接收DataObject对象了,记得修正之前的拼写错误:

import org.testng.annotations.Test;

@Test(dataProvider = "testautomation")
public void getData(DataObject dataObj) throws Exception {
    System.out.println(dataObj.getUserName() + "\t ****");
    System.out.println(dataObj.getPassword()); // 这里修正了拼写错误
}

原理说明

TestNG的@DataProvider非常灵活,它支持返回任意类型的对象数组——只要@Test方法的参数类型和DataProvider返回的元素类型匹配,TestNG就会自动把对应的数据注入到测试方法中。我们只是把原本分散的字符串参数封装成了POJO对象,让代码更符合面向对象的设计,也更易于维护。

内容的提问来源于stack exchange,提问作者ArrchanaMohan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:14:08