Ответ 1
User Matcher документация isA().
public static <T> T isA(java.lang.Class<T> clazz)
Это решит вашу проблему.
verify(foo).putObject(any(),isA(SomeClass.class));
У меня есть метод:
void putObject(<T extends BaseEntity> param)
Есть ли какой-то тест, где я издеваюсь над этим методом, но мне интересно, как проверить, вызван ли метод с параметром определенного класса? Пытался сделать это таким образом:
verify(foo).putObject((SomeClass)anyObject());
------
verify(foo).putObject(any(SomeClass.class));
------
ArgumentCaptor<SomeClass> parameter = ArgumentCaptor
.forClass(SomeClass.class);
verify(foo).putObject(parametr);
Выполняет только второй вариант с any()
, но не имеет параметра t check class of
. Итак, если можно проверить, что метод получает какой-либо объект определенного класса?
User Matcher документация isA().
public static <T> T isA(java.lang.Class<T> clazz)
Это решит вашу проблему.
verify(foo).putObject(any(),isA(SomeClass.class));
На самом деле вы можете проверить с помощью ArgumentCaptor.
ArgumentCaptor<SomeClass> parameterCaptor = ArgumentCaptor
.forClass(SomeClass.class);
verify(foo).putObject(parameterCaptor.capture());
SomeClass instance = parameterCaptor.getValue();
// check intance.getX()
// check instance.getY()