Для проверки исключений я могу использовать следующее:
@org.junit.Rule
public ExpectedException expectedException = ExpectedException.none();
// and in my test:
expectedException.expect(MyException.class
expectedException.expectMessage("some message");
Но я хочу проверить причину исключения, и я застрял, пытаясь понять, как это сделать. Прямо сейчас у меня есть следующее:
expectedException.expectCause(
org.junit.internal.matchers.ThrowableCauseMatcher.hasCause(
org.mockito.ArgumentMatchers.argThat((e) -> {
assertEquals(
"Unexpected message",
"the message of the cause",
((SomeOtherException)e).getCause().getMessage());
return true;
})));
но это дает мне:
java.lang.NullPointerException
в org.junit.internal.matchers.ThrowableCauseMatcher.matchesSafely (ThrowableCauseMatcher.java:30)
в org.junit.internal.matchers.ThrowableCauseMatcher.matchesSafely (ThrowableCauseMatcher.java:14)
в org.hamcrest.TypeSafeMatcher.matches (TypeSafeMatcher.java:65)
Кто-нибудь знает правильный подход?