我有一个类似于这个的 void 方法
public void handle(MyObject myObject) {
Set<String> mySet = new HashSet<String>();
mySet.addAll(myObject.getStuff();
...
mySet.addAll(someOtherList);
...
myService.doSomething(mySet);
}
我正在使用 Mockito。我已经模拟了 myService 并且正在验证 myService.doSomething(mySet) 是否被任何这样的 Set 调用:
verify(myService).doSomething(any(Set.class));
但我想验证集合的预期内容。我试过这样的事情:
Set<String> expected = new HashSet<String>();
expected.add("item1");
expected.add("item2");
verify(myService).doSomething(expected);
此验证失败,因为由于“参数不同”,预期是 [item1,item2] 而实际是 [item2,item1]。所以内容相同,但顺序不正确。
如何在不更改正在使用的维护顺序的集合的情况下检查内容是否相同?