我有一个包含两列的 Excel 工作表,如下所示:
我使用@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/