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

如何在TestNG中创建1D Dataprovider方法?

彭鸿彩
2023-03-14

我正在尝试创建一个testNG dataprovider方法,该方法将从我的项目中返回一个自定义类的对象数组。这个数组是一维数组,我不想从这个dataprovider方法返回二维数组。请建议,Dataprovider是否应始终返回2D数组(不小于或大于2D)。如果是,则我需要以下方面的帮助:

返回新对象[][]{{user[0]},{user[1]},{user[2]},{user[3]}}

我们能否以更好的方式编写这一行代码,因为如果将来这个数组扩展的元素超过4个,我们将不得不编辑这个完整的函数,我们不能使用list等吗?

以下是我当前使用的代码:

@DataProvider(name = "credentialsProvider", parallel=false)
public static Object[][] credentialsProvider() throws Exception {
    User[] user=new User[4];
    user[0]=new User(UserTypes.AGENCY_MANAGER,1);
    user[1]=new User(UserTypes.AGENT,1);
    user[2]=new User(UserTypes.AGENCY_MODERATOR,1);
    user[3]=new User(UserTypes.EW_ECS_AGENCY_MANAGER,1);
    return new Object[][]{{user[0]},{user[1]},{user[2]},{user[3]}};
     };
}

共有1个答案

舒赞
2023-03-14

Dataprovider是2D的,这是一个原因——今天,您有一个字符串要作为数据传递,如果您必须将一个User对象和一个UserDetails对象传递给一个testcase,那么您需要一种同时传递这两个对象的方法,因此单元数组基本上就是您需要传递给单个测试的内容,而2D用于这样多个数据的列表。

为什么不在用户数组上循环以添加用户对象,而不是在一行中按索引进行检查。如果添加了一些内容,只需定义用户对象,for循环就会在整个长度上循环。

 类似资料:
  • 请指导我如何将所有这些转换为asynctask方法。我必须在asynctask中生成这段代码,因为在uithread中调用它时,它给出了一个null值。请告诉我如何实现这一点的正确方法。我看到了很多关于stackoverflow的问题,但我无法做到这一点。 我看到了以下问题: 如何修复android.os.NetworkOnMainThreadException? android.os.Netwo

  • 问题内容: 我有以下方法: 我想使其成为一种通用方法,这样我就不必为每个新的自定义类型编写新的代码。我可以这样做,这需要在调用update()之前实例化该对象: 出于好奇,我想知道是否有一种方法可以使用Java泛型来做到这一点: 有没有办法用Java做到这一点? 问题答案: 请注意,在这种情况下将可以修复。任一(其本身包括可从获得)或本身已得到通过。

  • 问题内容: 例如,在Java中,我可能有一个类,并且有一个名为的静态方法,因此我可以执行以下操作: 我该如何在目标C中做类似的事情? 非常感谢 问题答案: 在Objective-C中,您将此称为“类方法”,请参见此处: 该 + 是最重要的事情; 您可以这样调用方法:

  • 问题内容: 我的任务是编写一个询问用户输入的程序,该方法将返回输入是否形成幻方。无论我输入到控制台什么,程序都会返回我输入了一个魔术方块。我想念什么? 幻方定义:如果行,列和对角线的总和相同,则二维数组就是幻方。 问题答案: 您没有保存输入的内容,因此将0x0 square传递给。 许多方面的实现是错误的。 条件应该是。 您只需要在计算完成后检查即可。 您必须先进行初始化,然后再计算它们。 您应该

  • 这听起来很愚蠢,但我在StackOverflow或Google上都找不到答案。我需要做一件非常简单的事情——将一个每个集合中包含两个数字的数据提供程序传递给我的TestNG测试,但我没有成功。这是我的代码: 我的测试看起来是这样的 当我试图运行它时,我得到下一条错误消息: 数据提供程序公共java.lang.Object[]必须返回Object[][]或Iterator[],而不是类[Ljava.

  • 问题内容: 如何在method内部创建方法?当我创建其显示错误时: 令牌无效@上的语法错误 如果不能在方法内部创建方法,那么请告诉我如何在方法外部创建方法,并从方法中传递方法。 问题答案: *请注意,应使用没有不等号的实际类型(例如“ int”和“ short”)替换此类标记。