我想通过使用 JUnit 创建单元测试来测试是否正确生成了一些字符串列表。
我有 2 个字符串列表(我代码中的一个列表是 private static final,比方说 list1),具有相同的元素(相同的元素可以相乘),但顺序不同:
List<String> list1 = Arrays.asList("a","b","c");
List<String> list2 = Arrays.asList("c","a","b");
assertThat(list1 , containsInAnyOrder(list2));
这不起作用,junit 测试返回第一个元素不匹配。
我可能错误地使用了 containsInAnyOrder
方法。
containsInAnyOrder(java.util.Collection<Matcher<? super T>> itemMatchers)
我不知道如何实现这个Matcher
。
我不想使用这种类型的函数,因为它只适用于少量元素:
containsInAnyOrder(T... items)
最佳答案
您可以先对两个 List
进行排序,然后比较排序后的 List
。
List<String> list1 = Arrays.asList("a","b","c");
List<String> list2 = Arrays.asList("c","a","b",);
Collections.sort(list1);
Collections.sort(list2);
assertEquals( list1, list2 ); // true
关于java - 比较 2 List<String> 是否以任何顺序包含相同元素 [JUnit - Asset],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46788032/