7

AssertJ を使用して、例外をスローするメソッドを再度使用して、原因のメッセージが何らかの文字列と等しいことを確認する方法はありますか。

私は現在次のようなことをしています:

assertThatThrownBy(() -> SUT.method())
            .isExactlyInstanceOf(IllegalStateException.class)
            .hasRootCauseExactlyInstanceOf(Exception.class);

根本原因のメッセージをチェックするアサーションを追加したいと考えています。

4

2 に答える 2

12

正確ではありませんが、現時点でできる最善の方法はhasStackTraceContaining、例を使用することです

Throwable runtime = new RuntimeException("no way", 
                                         new Exception("you shall not pass"));

assertThat(runtime).hasCauseInstanceOf(Exception.class)
                   .hasStackTraceContaining("no way")
                   .hasStackTraceContaining("you shall not pass");
于 2016-08-15T10:39:09.553 に答える