В разработке программного обеспечения на Java часто встречается ситуация, когда необходимо протестировать метод с возвращаемым типом void
, который может выбросить исключение. В этом случае, для тестирования можно использовать библиотеку Mockito.
Предположим, есть метод, который не возвращает ничего (void
), но при определенных условиях выбрасывает исключение:
public void someMethod() throws Exception { // некоторый код, который может выбросить исключение }
Основная проблема при тестировании такого метода заключается в том, что обычный подход Mockito с использованием when(...).then(...)
не работает, так как метод when()
ожидает, что его аргументом будет какое-то значение, а не void
.
when(mockedObject.someMethod()).thenThrow(new Exception()); // некорректно
Вместо этого, нужно использовать комбинацию doThrow(...).when(...)
. Этот подход позволяет настроить объект-заглушку так, чтобы при вызове определенного метода он выбрасывал исключение.
doThrow(new Exception()).when(mockedObject).someMethod(); // корректно
Таким образом, при вызове someMethod()
на объекте mockedObject
будет выброшено исключение Exception
. Это позволяет организовать тест таким образом, чтобы проверить корректность обработки исключения в тестируемом коде.
Добавить комментарий