MyCustomException
タイプの例外がスローされることを確認するいくつかの JUnit テストを作成しています。ただし、この例外は他の例外に何度もラップされます。たとえば、InvocationTargetException にラップされ、それがさらに RuntimeException にラップされます。
MyCustomException が実際にキャッチした例外を何らかの形で引き起こしたかどうかを判断する最善の方法は何ですか? 私はこのようなことをしたいと思います(下線を参照):
try { doSomethingPotentiallyExceptional(); fail("Expected an exception."); } catch (RuntimeException e) { if (!e.
原因となった(MyCustomException.class) fail("Expected a different kind of exception."); }
いくつかの「レイヤー」を深く呼び出すことgetCause()
や、同様の醜い回避策を避けたいと思います。より良い方法はありますか?
(明らかに、Spring にはNestedRuntimeException.contains(Class)があり、これは私が望むことを行いますが、Spring は使用していません。)
CLOSED: わかり ました、ユーティリティ メソッドを回避する方法は本当にないと思います :-) 返信してくださった皆さんに感謝します!