これに似たvoidメソッドがあります
public void handle(MyObject myObject) {
Set<String> mySet = new HashSet<String>();
mySet.addAll(myObject.getStuff();
...
mySet.addAll(someOtherList);
...
myService.doSomething(mySet);
}
モッキートを使用しています。私は 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] であったため、検証に失敗しました。したがって、内容は同じですが、正しい順序ではありません。
順序を維持するために使用されているコレクションを変更せずに、内容が同じであることを確認するにはどうすればよいですか?