当前位置: 首页 > 知识库问答 >
问题:

如何在POJO类中存储TestNG dataprovider值

尚楚
2023-03-14

我有一张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方法中传递class对象呢?。顺便说一句,我可以不再公开像(username,@test method中的密码)这样的参数。

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方法中传递username和password。

有线索吗?

共有1个答案

葛海阳
2023-03-14

您的数据提供程序方法应该返回POJO:

@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());
}
 类似资料:
  • 问题内容: 我想将数据存储在ArrayList中并在另一个类中访问它,但是当我访问时,它是0。意味着我没有访问相同的arraylist。有人告诉我我做错了。 这是我的POJO课 这是我将数据存储在 A类中的方法 , 该类 已经过检查,已成功将其插入到arraylist中。 A级 问题出在 B类中, 当我访问它的返回值0时,意味着我没有访问相同的arraylist。 这是我在 B类中* 所做的 *

  • 问题内容: 这星期我们在办公室进行了一场健康的辩论。我们正在创建一个Db来存储代理信息,在大多数情况下,除了应该如何存储IP之外,我们还制定了模式。一个阵营想要使用4个smallint,每个八位位组一个,另一个希望使用1个大int INET_ATON。 这些表将非常庞大,因此性能至关重要。我处于中间位置,因为我通常在世界中使用MS SQL和4个小整数。我对这种类型的IP存储量没有足够的经验。 我们

  • 问题内容: 我有一个具有数据类型joda.money属性的类。如何将这个属性映射到mysql中。 我的课是: @Table(name =“ products”)公共类Product(){@Column(name =“ name”)字符串名称;@Column(name =“ money”)金钱金钱;} 我正在使用Spring Hibernate 谁能说出如何将此模型存储到mysql中? 问题答案:

  • 问题内容: 如何在免费版本的MySQL中存储Unicode? 在SQL Server中似乎没有类型。MySQL不支持Unicode吗?我尝试使用,但是那也不起作用。 问题答案: 您需要为表选择一个 字符集。然后,文本和备注字段将自动存储在UTF-8中。MySQL 6中提供了对UTF-16的支持。

  • 问题内容: 我知道float或double不适合存储货币和数量等十进制数字。我正在尝试使用NSDecimalNumber。这是我在Swift操场上的代码。 控制台输出为1.6599999999999995904 如何将十进制数1.66的确切值存储在变量中? 问题答案: 在 右侧是一个浮点数,不能精确表示值“ 1.66”。一种选择是从字符串创建十进制数字: 另一种选择是使用算术: 在Swift 3中

  • 问题内容: 我想在[String:SomeClass]类型的Dictionary中存储一个更专业的类型。这是一些说明我的问题的示例代码(也可以在https://swiftlang.ng.bluemix.net/#/repl/579756cf9966ba6275fc794a上使用): 它产生错误。 我已经尝试过强制转换,但是会产生错误。 我也尝试将Dictionary定义为type,但这也没有任何改