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

将列表存储到两个维度对象[][]

晋承运
2023-03-14

我正在尝试将 json 对象数组反序列化为 java 对象数组。我正在使用数据提供程序将此数据组合传递给测试方法,以便为每个数据集执行测试方法。

我已经创建了下面提到的数据提供程序方法,并对 JSON 进行了删除:

@DataProvider(name = "listData")
public Object[][] listData() throws FileNotFoundException {
    Type listType = new TypeToken<List<DataBean>>() {
    }.getType();
    List<DataBean> data = new GsonBuilder().create().fromJson(new FileReader("resources/data.json"), listType);
    data.forEach(iterator -> System.out.println(iterator.getUsername() + " : : " + iterator.getPassword()));
    return new Object[][]{data.toArray()};
}

测试方法:

@Test(dataProvider = "jsonData")
public void testdata(DataBean dataBean) {
    System.out.println(dataBean.getUsername() + "============" + dataBean.getPassword());

}

和JSON:

[
  {
    "username": "someuser",
    "password": "abc#add"
  },
  {
    "username": "anotheruser",
    "password": "daa#add"
  }
]

不幸的是,它不起作用。如果我使用如下所示的强类型对象,那么它将按预期工作:

    return new Object[][]{{new DataBean("user1", "d121312")},
            {new DataBean("user2", "asdsd")}};

错误:

org . TestNG . internal . reflect . method matcher exception:[public void com . mind . data provider util . test data(com . mind . databean)]未定义参数,但发现它正在使用数据提供程序(显式指定或从类级批注继承)。数据提供者不匹配方法:testdata([Parameter{index=0,type=com.mind.DataBean,declaredAnnotations=[]}])参数:[(com . mind . databean)com . mind . databean @ 78 b 66d 36,(com . mind . databean)com . mind . databean @ 5223 e5ee]

有人能帮我存储<代码>列表吗

共有1个答案

司徒经纶
2023-03-14

数据以矩阵形式存储在二维阵列中。

假设有一个3x3的数组,则矩阵表示为

1     2     1   

3     4     2

1     2     1

作为数据提供者返回二维数组,为数据驱动测试的测试方法提供数据。所以需要用合适的大小来提< code>Object[][]。我在JSON文件中有2组数据,我正在将它们反序列化为一个JAVA对象,在我的例子中它是DataBean。所以在这里我必须提到大小作为< code >对象[dataBean.size()][1]

完整代码:

    Type listType = new TypeToken<List<DataBean>>() {
    }.getType();
    List<DataBean> bean = new GsonBuilder().create().fromJson(new FileReader("resources/data.json"), listType);
    bean.forEach(iterator -> System.out.println(iterator.getUsername() + " : : " + iterator.getPassword()));
    Object[][] data = new Object[bean.size()][1];
    for (int i = 0; i < bean.size(); i++) {
        data[i][0] = bean.get(i);
    }
    return data;
 类似资料:
  • 我建立了一个由telegraf、influxdb和chronograf组成的influxdata架构,用于从环境传感器(温度、压力和湿度)收集数据。目前,我正在完美地收集从mqtt到具有无限数据保留的度量的数据和元数据。 现在,项目的用户希望,从通过mqtt的记录中,数据被无限地存储在一个度量中,元数据被存储在保留6个月的第二个度量中。 下面是如何将从mqtt队列创建的记录存储在inflxDB中:

  • 本文向大家介绍python实现两个一维列表合并成一个二维列表,包括了python实现两个一维列表合并成一个二维列表的使用技巧和注意事项,需要的朋友参考一下 我就废话不多说了,直接上代码吧! 以上这篇python实现两个一维列表合并成一个二维列表就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 每个类都有一些独特的字段。所有最大的功能是:添加,更新,删除,查找,显示列表,保存,加载文件 -所以,首先我将创建一个名为Product的类,它有4个公共字段。以上课程将从产品延伸。 -然后,我想我可能会创建一个ComputerStore类,它有一个字段是items类型ArrayList。items存储所有的对象,这些对象是上述4个类的实例,但我不确定。

  • 问题内容: 我有一张桌子 提供值后,需要计算为 我想乘和列并将结果存储在同一表的列中。 我已经试过了: 但是失败了! 有人请帮助我实现这一目标。 问题答案: 尝试更新表格

  • 目前,我有一个节点应用程序,它使用mongoose将对象保存到MongoDB中。我使用的是类似于这样的模型: 它将我的对象保存到名为Registrations的集合中。 我将我的注册保存为: 我还希望在创建该对象时将其保存到另一个具有不同名称的集合中,如registrations_new或类似的内容。我想将此条目复制到新集合中。我尝试在连接字符串中添加另一个集合,这完全破坏了mongo部分,我尝试

  • 第一次来这里,所以我希望这是有意义的! 我有两个对象数组,比如l1和l2,我想在这两个列表之间进行比较,并在l3中得到一个不匹配的值。用户类包含2个字符串: 比如,l1包含:Java、JSF、JAXR、foo l2包含:JSF、JAXR 我可以对匹配的值进行比较,但不能对不匹配的值进行比较。这种逻辑似乎有缺陷。有什么帮助吗? 对于匹配值: 但是,对于不匹配,当我说不等于时,我得到的不是唯一的值,而