java - 如何在 POJO 类中存储 TestNG 数据提供程序值

标签 java selenium testng testng-dataprovider

我有一个包含两列的 Excel 工作表,如下所示:

enter image description here

我使用@Dataprovider(TestNG 注释)从 excel 表中读取数据并将其传递给@Test 方法。测试方法如下所示

@Test(dataProvider = "testautomation")
    public void getData(String userName, String password)throws Exception 
      {
        System.out.println(userName+ "\t ****");
        System.out.println(password);
      }

它按预期工作,并从 excel 表中获得了正确的数据。但是有什么办法可以将这两个参数保留在 pojo 类中并在 @test 方法中传递类对象?顺便说一下,我可以停止公开参数,例如(@Test 方法中的用户名、密码)。

可能是 pojo 类如下所示:

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

    //and getter setter methods.
 }

测试方法如下所示:

@Test(dataProvider = "testautomation")
        public void getData(DataObject dataObj)throws Exception 
          {

            System.out.println(dataObj.getUserName()+ "\t ****");
            System.out.println(dataObj.getPasswrod());
          }

我想在@test方法中调用这个pojo类对象作为参数,并使用pojo类中的getter和setter方法来获取值,而不是在@Test方法中传递用户名和密码。

有线索吗?

最佳答案

您的数据提供者方法应返回 pojos:

@DataProvider(name = "pojoProvider")
public Object[][] createPojoData() {
 return new Object[][] {
   { new DataObject("User1", "****") },
   { new DataObject("User2", "****") },
 };
}

然后在测试注解中指定即可:

@Test(dataProvider = "pojoProvider")
public void getData(DataObject dataObj)throws Exception 
{
    System.out.println(dataObj.getUserName()+ "\t ****");
    System.out.println(dataObj.getPasswrod());
}

关于java - 如何在 POJO 类中存储 TestNG 数据提供程序值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50290521/

相关文章:

java - 如何使用 Selenium 关注文件对话框来选择文件

java - 我们能否将测试结果 TestNG 报告或范围报告集成到 Microsoft 团队

java - 使用 Cloud Endpoints V2 下载 App Engine SDK

java - Castor 和 JAXB 编码器

java - java中的线程间通信

java替换上一个()

xml - 如何对具有两个可能的最后一个元素的元素进行xpath?

c# - Specflow:为许多场景大纲维护一个示例表

java - TestNG 中的 alwaysRun 参数

testing - JUnit:是否有一个 RunListener 方法,它在 @After 注释方法之后调用?