Ответ 1
Для Java 8 и выше это легко:
when(mock.process(Matchers.anyList()));
Для Java 7 и ниже компилятор нуждается в некоторой помощи. Используйте anyListOf(Class<T> clazz)
:
when(mock.process(Matchers.anyListOf(Bar.class)));
Mockito предлагает:
when(mock.process(Matchers.any(List.class)));
Как избежать предупреждения, если process
вместо этого принимает List<Bar>
?
Для Java 8 и выше это легко:
when(mock.process(Matchers.anyList()));
Для Java 7 и ниже компилятор нуждается в некоторой помощи. Используйте anyListOf(Class<T> clazz)
:
when(mock.process(Matchers.anyListOf(Bar.class)));
В дополнение к anyListOf
выше, вы всегда можете явно указать обобщения, используя этот синтаксис:
when(mock.process(Matchers.<List<Bar>>any(List.class)));
Java 8 new позволяет вводить тип на основе параметров, поэтому, если вы используете Java 8, это может также работать:
when(mock.process(Matchers.any()));
Помните, что ни any()
, ни anyList()
не будут применены никакие проверки, включая проверки типа или нуля. В Mockito 2.x, any(Foo.class)
был изменен на "any instanceof
Foo", но any()
по-прежнему означает "любое значение, включая null
".
ПРИМЕЧАНИЕ. Вышеперечисленное переключилось на ArgumentMatchers в новых версиях Mockito, чтобы избежать столкновения имен с org.hamcrest.Matchers
. Старые версии Mockito должны будут продолжать использовать org.mockito.Matchers
, как указано выше.