Я пытаюсь написать модульный тест, чтобы протестировать этот кусок кода, но я потерпел неудачу в пределах Mockito / Powermockito с собственным классом java .lang.Class, как объяснено здесь .
Как я могу проверить это:
Method[] serverStatusMethods = serverStatus.getClass().getMethods();
for (Method serverStatusMethod : serverStatusMethods) {
if (serverStatusMethod.getName().equalsIgnoreCase("get" + field)) {
serverStatusMethod.setAccessible(true);
try {
Number value = (Number) serverStatusMethod.invoke(serverStatus);
response = new DataResponse(field + " value", value);
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
Logger.getLogger(StatusServlet.class.getName()).log(Level.SEVERE, null, ex);
response = new ErrorResponse(HttpStatus.Code.INTERNAL_SERVER_ERROR, ex);
}
break;
}
}
, чтобы преднамеренно выдать это исключение в тестовом примере:
catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
Logger.getLogger(StatusServlet.class.getName()).log(Level.SEVERE, null, ex);
response = new ErrorResponse(HttpStatus.Code.INTERNAL_SERVER_ERROR, ex);
}