This question already has answers here:
LinkedHashSet .equals() vs LinkedList .equals() with same elements but different order
(2个答案)
JUnit order of LinkedHashMap Java 8
(1个答案)
3年前关闭。
我正在尝试编写一个Junit测试,该测试应该测试两个LinkedHashSets中的元素顺序是否相同。以下是我现有的代码:
即使我将a,d,c,b与a,b,c,d进行比较,并且因此不考虑元素的顺序,该测试也是成功的。
如何基于顺序进行断言?
LinkedHashSet是一个Set(尽管它具有保证的迭代顺序),因此在其
(2个答案)
JUnit order of LinkedHashMap Java 8
(1个答案)
3年前关闭。
我正在尝试编写一个Junit测试,该测试应该测试两个LinkedHashSets中的元素顺序是否相同。以下是我现有的代码:
Assert.assertEquals(
Sets.newLinkedHashSet(Arrays.asList("a","d","c","b")),
conf.getSetInfo()
);
即使我将a,d,c,b与a,b,c,d进行比较,并且因此不考虑元素的顺序,该测试也是成功的。
如何基于顺序进行断言?
最佳答案
当您比较两个列表是否相等时,将考虑元素的顺序。因此,只需将原始LinkedHashSet转换为List即可进行声明。
List<String> expected = Arrays.asList("a", "d", "c", "b");
Assert.assertEquals(
expected,
new ArrayList<>(conf.getSetInfo())
);
LinkedHashSet是一个Set(尽管它具有保证的迭代顺序),因此在其
equals()
实现中忽略了该顺序。 Further reading。关于java - 对LinkedHashSet中的订单进行Junit测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45169421/
10-10 16:34