Существует общий метод, который принимает класс как параметр, и у меня возникают проблемы с его запуском с помощью Mockito. Метод выглядит следующим образом:
public <U extends Enum<U> & Error, T extends ServiceResponse<U>> T validate(
Object target, Validator validator, Class<T> responseClass,
Class<U> errorEnum);
Это ужасный бог, по крайней мере для меня... Я мог представить себе жизнь без него, но остальная база кода счастливо использует его...
Я собирался, в моем unit test, заглушить этот метод, чтобы вернуть новый пустой объект. Но как мне это сделать с помощью mockito? Я пробовал:
when(serviceValidatorStub.validate(
any(),
isA(UserCommentRequestValidator.class),
UserCommentResponse.class,
UserCommentError.class)
).thenReturn(new UserCommentResponse());
но поскольку я смешиваю и сопоставляю совпадения и исходные значения, я получаю "org.mockito.exceptions.misusing.InvalidUseOfMatchersException: недопустимое использование аргументов!"