Ответ 1
Try:
verify(someService).process(Matchers.<Collection<Person>>any());
Собственно, IntelliJ автоматически предложил это исправление, когда я набрал any()
... К сожалению, вы не можете использовать статический импорт в этом случае.
С Mockito я могу сделать следующее:
verify(someService).process(any(Person.class));
Но как это записать, если process
вместо этого принимает Collection<Person>
? Не могу понять, как правильно писать. Просто получить синтаксические ошибки...
Try:
verify(someService).process(Matchers.<Collection<Person>>any());
Собственно, IntelliJ автоматически предложил это исправление, когда я набрал any()
... К сожалению, вы не можете использовать статический импорт в этом случае.
Попробуйте:
verify(someService).process(anyCollectionOf(Person.class));
Поскольку версия 1.8 Mockito представляет
public static <T> Collection<T> anyCollectionOf(Class<T> clazz);
если вы используете собственный метод, вы даже можете использовать статический импорт:
private Collection<Person> anyPersonCollection() {
return any();
}
Затем вы можете использовать
verify(someService).process(anyPersonCollection());
Вы не можете выразить это из-за стирания типа. Даже если вы могли бы выразить это в коде, у Mockito не было возможности проверить его во время выполнения. Вы можете создать интерфейс, например
interface PersonCollection extends Collection<Person> { /* nothing */ }
и используйте это во всем своем коде.
Изменить: я ошибся, у Mockito есть anyCollectionOf (..), который вам нужен.