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

JUnit:比较包含列表的两个bean而不管列表顺序如何

夹谷烨赫
2023-03-14

我发现了许多关于比较列表对象而不管其元素的顺序如何的问题和答案,但我的问题更复杂:我有两个bean,其中包含一个列表。我希望对这两个bean执行assertEquals,而不管内部列表中元素的顺序如何。有没有一个简单的方法可以做到这一点?

共有1个答案

宰父霖
2023-03-14

我猜你可以在这里找到答案。这个想法是使用hamcrest断言。

import static org.hamcrest.collection.IsIterableContainingInAnyOrder.containsInAnyOrder;
import static org.junit.Assert.assertThat;

public class CompareListTest {

    @Test
    public void compareList() {
        List<String> expected = Arrays.asList("String A", "String B");
        List<String> actual = Arrays.asList("String B", "String A");

        assertThat("List equality without order", 
            actual, containsInAnyOrder(expected.toArray()));
    }

}
 类似资料:
  • null 但是,如果清单2为应该返回false(因为字符串d出现的顺序混乱)

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

  • 我有两个列表,数据相同,但顺序不同。 结果:

  • 问题内容: 我有两个列表(不是Java列表,可以说两列) 例如 我想要一个返回多少个相同元素的方法。对于此示例,它应该为3,并且应该返回列表的相似值和不同的值。 如果是,我应该使用哈希图,然后用什么方法获得结果? 请帮忙 PS:这不是学校作业:)因此,如果您只是指导我就足够了 问题答案: 编辑 这是两个版本。一种使用,另一种使用 比较它们并从中创建您自己的版本,直到获得所需的内容。 这应该足以覆盖

  • 问题内容: 如果我有一个长长的清单:我分为两个清单: 我如何比较这两个列表以查看它们是否相等/相同,并约束它们必须具有相同的顺序? 我看到过一些问题,要求通过对两个列表进行排序来进行比较,但是在我的特定情况下,我不是要检查排序的比较,而是要检查相同的列表比较。 问题答案: 只需使用经典运算符: 如果相同索引处的元素相等,则列表相等。然后考虑订购。

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