можно ли передать тип интерфейса с генериками?
Интерфейс:
public interface AsyncCallback<T>
В моем методе испытаний:
Mockito.any(AsyncCallback.class)
Положив в <ResponseX>
или для .не рабочий класс
.
Есть такой тип-безопасный способ: ArgumentMatchers использования.любой () и определять его тип:
ArgumentMatchers.<AsyncCallback<ResponseX>>any()
как pierrefevrier упоминалось в комментариях, с новыми версиями Mockito он'ы
Matchers.<AsyncCallback<ResponseX>>any()
Используете Java 8, вы можете просто использовать любой()(если статический импорт) без аргумента или параметра типа, поскольку усиливается выведение типа. Теперь компилятор знает от целевого типа (тип аргумента метода), что вы на самом деле имеете в виду Первомайскую.<объект asynccallback<ResponseX>>любой()
, который является предварительное решение на Java 8.
Мне пришлось принять следующую mechamism, позволяющие дженерики:
import static org.mockito.Matchers.any;
List<String> list = any();
when(callMyMethod.getResult(list)).thenReturn(myResultString);
Надеюсь, что это помогает кто-то.
Далее thSoft'ы ответьте сдачи квалифицированных позвонить в любой() в метод означало, что я мог снять, т. к. тип возвращаемого допускается вывод:
private HashMap<String, String> anyStringStringHashMap() {
return Matchers.any();
}
Вы можете просто разыграть его, добавив подавить предупреждения, если вам нравится:
@SuppressWarnings("unchecked")
AsyncCallback<ResponseX> callback = Mockito.any(AsyncCallback.class)
Если Java допускается 'универсальные' дженерики они могли бы иметь метод такой, который является то, что вы ищете
private static <T, E> T<E> mock(Class<T<E>> clazz)