Я пытаюсь написать некоторые модульные тесты для контроллера весной MVC, и часть метода контроллера имеет следующий код:
try {
newProjectFile.setFileType(fileType);
newProjectFile.setContent(BlobProxy.generateProxy(file.getInputStream(), file.getSize()));
} catch (Exception e) {
throw new BadUpdateException(e.getMessage());
}
Я настроил MockMultipartFile в моем модуле test, и я хотел бы проверить исключительный случай здесь, чтобы я мог получить неверный ответ на запрос.
Я попытался настроить что-то вроде следующего:
unit test:
MockMultipartFile file = new MockMultipartFile("file", "receipts.zip", "application/zip", "".getBytes());
[...]
when(file.getInputStream()).thenThrow(IOException.class);
[...]
и я получаю следующую ошибку:
when() requires an argument which has to be 'a method call on a mock'.
For example:
when(mock.getArticles()).thenReturn(articles);
Если я не могу использовать 'when' для MockMultipartFile, как если бы я использовал любой обычный объект-макет, а Mockito не позволяет вам mock stati c методы, как я могу получить исключение здесь?
Редактировать: как указано в комментариях, MockMultipartFile не из Mockito, следовательно, ошибка, упомянутая выше.
Вопрос на самом деле заключается в том, как вызвать исключение в блоке try / catch, который предположительно либо , сгенерировав IOException для file.getInputStream () или UnsupportedOperationException для BlobProxy.generateProxy ( ), так что мой метод вызывает исключение BadUpdateException.