2016-03-16 2 views
0

Я пытаюсь создать единичный тест для моего многопоточного кода.Mockito ArgumentCaptor захватывает несколько раз в многопоточном коде

Мой текущий фрагмент кода, как это:

verify(someObject, times(2)).someMethod(captor.capture()); 
List<SomeObject> list = captor.getAllValues(); 
assertThat(list.get(0)).isEqualTo(... 
assertThat(list.get(1)).isEqualTo(... 

Теперь SomeMethod называется в двух отдельных потоках, поэтому порядок захваченных аргументов недетерминирован. Мне было интересно, есть ли способ утверждать эти аргументы без какого-либо конкретного порядка.

Конечно, я мог бы написать собственный Компаратор и отсортировать список заранее, но мне было интересно, был ли более простой способ, чем этот.

Спасибо!

ответ

2

Просто убедитесь, что список содержит элементы, независимо от того:

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

Спасибо за быстрый ответ! Именно то, что я искал. – user1441057

Смежные вопросы