Junit 测试 LinkedHashSet 中的顺序

Junit test for order in LinkedHashSet

我正在尝试编写一个 Junit 测试,它应该测试两个 LinkedHashSet 中元素的顺序是否相同。以下是我现有的代码:

Assert.assertEquals(
            Sets.newLinkedHashSet(Arrays.asList("a","d","c","b")),
            conf.getSetInfo()
    );  

即使我将 a、d、c、b 与 a、b、c、d 进行比较,因此不考虑元素的顺序,此测试也是成功的。 我怎样才能根据顺序进行断言?

比较两个 List 是否相等时,会考虑元素的顺序。因此,只需将原始 LinkedHashSet 转换为 List 即可用于断言。

List<String> expected = Arrays.asList("a", "d", "c", "b");        
Assert.assertEquals(
   expected,
   new ArrayList<>(conf.getSetInfo())
);

LinkedHashSet 是一个 Set(尽管它具有保证的迭代顺序),因此在其 equals() 实现中忽略了顺序。 Further reading