С Mockito я могу сделать следующее:
verify(someService).process(any(Person.class));
Но как мне написать это, если вместо process вместо Collection<Person>?Не могу понять, как правильно написать.Просто получаю синтаксические ошибки ...
process
Collection<Person>
Попробуйте:
verify(someService).process(Matchers.<Collection<Person>>any());
На самом деле IntelliJ автоматически предложил это исправление, когда я набрал any() ... К сожалению, вы не можете использовать статический импорт в этом случае.
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 (..) , чточто ты хочешь.