Multithreading Mockito ArgumentCaptor在多线程代码中多次捕获

Multithreading Mockito ArgumentCaptor在多线程代码中多次捕获,multithreading,mockito,Multithreading,Mockito,我正在尝试为我的多线程代码创建一个单元测试 我当前的代码片段如下所示: verify(someObject, times(2)).someMethod(captor.capture()); List<SomeObject> list = captor.getAllValues(); assertThat(list.get(0)).isEqualTo(... assertThat(list.get(1)).isEqualTo(... verify(someObject,times(2

我正在尝试为我的多线程代码创建一个单元测试

我当前的代码片段如下所示:

verify(someObject, times(2)).someMethod(captor.capture());
List<SomeObject> list = captor.getAllValues();
assertThat(list.get(0)).isEqualTo(...
assertThat(list.get(1)).isEqualTo(...
verify(someObject,times(2)).someMethod(captor.capture());
List=captor.getAllValues();
assertThat(list.get(0)).isEqualTo(。。。
assertThat(list.get(1)).isEqualTo(。。。
现在someMethod在两个单独的线程中调用,所以捕获的参数的顺序是不确定的。我想知道是否有一种方法可以在没有任何特定顺序的情况下断言这些参数

当然,我可以事先编写一个自定义比较器并对列表进行排序,但我想知道是否有比这更简单的方法


谢谢!

只需检查列表是否包含与顺序无关的元素:

assertThat(list, hasItem(...));
assertThat(list, hasItem(...));

只需检查列表是否包含独立于顺序的元素:

assertThat(list, hasItem(...));
assertThat(list, hasItem(...));

谢谢你的快速回复!正是我想要的。谢谢你的快速回复!正是我想要的。