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

比较JUnit中的两个对象列表[重复]

白晋鹏
2023-03-14
//actual    
List<ProjectData> actuals = ProjectManagerDao.getProjects("x", "y", "z");
// expected
List<ProjectData> expecteds = new ArrayList<>();
ProjectData p1 = new ProjectData();
p1.setId("a");
p1.setName("b");
expecteds.add(p1);

assertTrue(JsonProvider.getGson().toJson(actuals).equalsIgnoreCase(JsonProvider.getGson().toJson(expecteds)));
//or
assertTrue(actuals.equalIgnoreCase(expeteds);//Not working for list of objects but working for comparing two strings

这与Java比较两个列表的不同之处在于,我需要能够在jUnit中断言相等性,而不仅仅是比较列表。

共有1个答案

滕渝
2023-03-14

使用assert.assertarrayequals(Object[]expecteds,Object[]Intuals)方法比较两个数组的内容相等性:

Assert.assertArrayEquals(expected.toArray(), actuals.toArray());

equals方法比较数组是否是相同的引用,因此它不适用于测试用例。

对于您的另一个问题:记住使用org.junit.assert,而不是junit.assert,后者已经过时了。

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

  • 问题内容: 我有两个列表 , 都包含 MyData 类型的对象,而 MyData* 包含这些变量。 利斯塔和数组listB都包含MyData的对象,现在我要两个列表的对象值比较这里 的名字 ,以及 检查 变量一样,如果 利斯塔 包含这些对象值 和ListB也包含 然后我必须比较列表并返回false,因为两个列表相同但是如果ListA包含 和 ListB 包含 然后我必须比较列表并返回true,因为

  • 在一个JUnit4测试中,我有一个方法,它返回一个对象,我要将它与引用列表进行比较。到目前为止,我发现的最佳解决方案是使用和,如下所示: 对于只返回很少值的测试来说,这是很好的。但是如果一个测试返回更多的值,这肯定不是最好的方法。 我还尝试了下面的代码。要编译代码,需要在之前向下转换到: 对比失败了,不明白为什么: java.lang.AssertionError:预期:(包含<[<0.2>的<1

  • 在爪哇中。如果我们必须将一个对象与另一个对象进行比较。我们比较该对象中的每个字段。 学生 1 对象具有标记 1、标记 2、标记 3、名称、年龄作为字段。学生 2 对象具有标记 1、标记 2、标记 3、名称、年龄作为字段。因此,要检查2名学生是否相等...我们比较每个字段。 但是,如果 Student 对象有许多字段,该怎么办?学生1对象有标记1,标记2,标记3,名称,年龄,地址,颜色,类,国家,部

  • 假设我有两个列表,现在listOld包含旧员工信息,listNew包含新员工信息 我如何比较这两个列表并返回新列表,其中包含,添加的新员工列表,包含,删除的员工列表,包含上次更新已更改的员工的新列表? 我只能想到迭代列表和比较,可能最终几乎是O(n2)时间,这可以由任何util类更有效地完成吗?