Я пишу тест JUnit/Mockito, где ожидается, что будет выбрано исключение. Конечно, я могу это сделать:Как проверить детали исключений, брошенных в тестах JUnit?
@Test(expected=IllegalArgumentException.class)
Но это не позволяет мне делать что-либо еще после его броска. Так что я думал, может быть что-то подобное:
Exception actualEx = null;
try {
// Act
sut.doStuff();
} catch (final Exception ex) {
actualEx = ex;
}
// Assert
assertTrue(IllegalArgumentException.class.equals(actualEx.getClass()));
// ... perhaps verify the exception details
verifyNoMoreInteractions(mockObject);
Это кажется довольно некрасиво и чувствует, как он может быть улучшен - есть лучший путь?
Вы пробовали правило ExpectedException? http://alexruiz.developerblogs.com/?p=1530 – luanjot
или [catch-exception] (https://code.google.com/p/catch-exception/), слишком плохо, однако они используют FEST-Assert (почти мертвый) вместо AssertJ – Brice
@Brice Спасибо, но я предпочел бы избегать добавления библиотек, если я могу помочь ... –