Я хочу поиздеваться над классом в Mockito. Затем будет выполнен вызов .newInstance (), который, как ожидается, вернет фактический экземпляр класса (и вернет имитацию в моем случае).
Если он был настроен правильно, я мог бы сделать:
ArrayList myListMock = mock(ArrayList.class);
when(myVar.newInstance()).thenReturn(myListMock);
Я знаю, что могу настроить его так, чтобы новый экземпляр класса ArrayList был имитацией (с использованием PowerMockito whenNew), просто интересно, есть ли способ имитировать этот тип объекта класса, чтобы мне не приходилось переопределять создание экземпляра ...
Ниже приведен реальный класс, который я пытаюсь имитировать, я не могу изменить структуру, определенную интерфейсом. Я ищу способ предоставить cvs при вызове инициализации.
public class InputConstraintValidator
implements ConstraintValidator<InputValidation, StringWrapper> {
Class<? extends SafeString> cvs;
public void initialize(InputValidation constraintAnnotation) {
cvs = constraintAnnotation.inputValidator();
}
public boolean isValid(StringWrapper value,
ConstraintValidatorContext context) {
SafeString instance;
try {
instance = cvs.newInstance();
} catch (InstantiationException e) {
return false;
} catch (IllegalAccessException e) {
return false;
}
}