以下の内容はhttps://anton0825.hatenablog.com/entry/2022/07/21/000000より取得しました。


JUnitで例外がthrowされるケースのテストをしたら「Exception in thread "pool-1-thread-1" java.lang.RuntimeException」が出て鬱陶しい

以下のような感じで例外がthrowされることをテストした場合。

assertThrows(Exception.class, () -> obj.method());

想定通りのExceptionが出てテストが成功する場合でも、「Exception in thread "pool-1-thread-1" java.lang.RuntimeException」みたいなエラーメッセージがログに出てしまいドキッとする。

そんな場合は以下のようにbackground thread全体のUncaughtExceptionHandlerを何もしない関数に一旦置き換えてテストを実行するとログを抑止できる。

Thread.UncaughtExceptionHandler defaultHandler = Thread.getDefaultUncaughtExceptionHandler();
Thread.setDefaultUncaughtExceptionHandler((t, e) -> {});
assertThrows(Exception.class, () -> obj.method());
Thread.setDefaultUncaughtExceptionHandler(defaultHandler);

ただし、テストを並列実行している場合は他のテストでthrowされた例外のエラーログが出なくなるリスクがあるので注意。




以上の内容はhttps://anton0825.hatenablog.com/entry/2022/07/21/000000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14