我正在尝试为我的多线程代码创建一个单元测试。
我目前的代码段是这样的:
verify(someObject, times(2)).someMethod(captor.capture());
List<SomeObject> list = captor.getAllValues();
assertThat(list.get(0)).isEqualTo(...
assertThat(list.get(1)).isEqualTo(...
现在someMethod在两个独立的线程中被调用,因此捕获的参数的顺序是不确定的。我想知道是否有办法在没有任何特定顺序的情况下断言这些参数。
当然我可以写一个自定义Comparator并事先对列表进行排序,但我想知道是否有比这更简单的方法。
谢谢!
答案 0 :(得分:2)
只需检查列表是否包含元素,与订单无关:
assertThat(list, hasItem(...));
assertThat(list, hasItem(...));