ser*_*eek 4 java collections junit set linkedhashset
我正在尝试编写一个Junit测试,该测试应测试两个LinkedHashSets中元素的顺序是否相同.以下是我现有的代码:
Assert.assertEquals(
Sets.newLinkedHashSet(Arrays.asList("a","d","c","b")),
conf.getSetInfo()
);
Run Code Online (Sandbox Code Playgroud)
即使我给它比较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())
);
Run Code Online (Sandbox Code Playgroud)
LinkedHashSet是一个Set(尽管具有保证的迭代顺序),因此在其equals()
实现中忽略了排序.进一步阅读.
归档时间: |
|
查看次数: |
494 次 |
最近记录: |