Я пробовал много разных вещей из Inte rnet, но не нашел никого, кто обрабатывает исключения, пытается поймать блоки только с Mockito. Вот код, который я пытаюсь протестировать:
public void add() throws IOException {
try {
userDAO.insert(user);
externalContext.redirect("users.xhtml");
} catch (final DuplicateEmailException e) {
final FacesMessage msg = new FacesMessage(
"Die E-Mail Adresse wird bereits verwendet.");
facesContext.addMessage(emailInput.getClientId(), msg);
} catch (final UserAlreadyInsertedException e) {
throw new IllegalStateException(e);
}
}
, а затем вот как я пытаюсь проверить его прямо сейчас:
@Test
public void addTest() throws IOException, UserAlreadyInsertedException, DuplicateEmailException {
User user = mock(User.class);
doNothing().when(userDAO).insert(user);
doNothing().when(externalContext).redirect(anyString());
doNothing().when(facesContext).addMessage(anyString(),any());
try{
initMirror();
userAddBean.add();
verify(userDAO, times(1)).insert(user);
verify(externalContext, times(1)).redirect(anyString());
}
catch (DuplicateEmailException e){
verify(facesContext,times(1)).addMessage(anyString(),any());
}
catch (UserAlreadyInsertedException e){
doThrow(IllegalStateException.class);
}
}
Я почти уверен, что особенно последняя часть, в которой я пытаюсь поймать и выбросить исключение, неверна, но я действительно не могу найти хорошего учебника по этому поводу.
Заранее спасибо за любую помощь :)