私はすべての例外が正しいことを確認しようとしています。値はCompletableFutures
にラップされているため、スローされる例外はExecutionException
です。原因は例外で、通常チェックします。クイック例:ExpectedException原因の原因?
void foo() throws A {
try {
bar();
} catch B b {
throw new A(b);
}
}
のでfoo()
がbar()
によってスローされた例外を変換し、そのすべてがCompletableFutures
とAsyncHandlers
内で行われている(私は全体のコードをコピーしません、それはあくまでも参考のためです)
私のユニットでfoo()
を呼び出すときに、私はbar()
を作ってるんだテストが例外をスローし、それが正しく翻訳されますことを確認したい:
Throwable b = B("bleh");
when(mock.bar()).thenThrow(b);
ExpectedException thrown = ExpectedException.none();
thrown.expect(ExecutionException.class);
thrown.expectCause(Matchers.allOf(
instanceOf(A.class),
having(on(A.class).getMessage(),
CoreMatchers.is("some message here")),
));
をこれまでのところは良い、B UT私はまたA
が例外B
とhaving(on(A.class).getCause(), CoreMatchers.is(b))
原因CodeGenerationException --> StackOverflowError
TLで例外の原因を確認したい; DRは:どのように私が期待した例外の原因の原因を得るのですか?
たぶん、この質問は、あなたが(私はよく分からない)何をしたいです:https://stackoverflow.com/questions/ 871216/junit-possible-to-wrapped-exception/20759785#20759785 –
@RC。ほぼ、しかし、私は1つのレベルを深くし、次の原因を取得する必要があります:) – Amir
あなたは適応することができる必要があります:https://stackoverflow.com/a/6528640/180100 –