次のテストを実行すると、失敗します。
public class CrazyExceptions {
private Exception exception;
@Before
public void setUp(){
exception = new Exception();
}
@Test
public void stackTraceMentionsTheLocationWhereTheExceptionWasThrown(){
String thisMethod = new Exception().getStackTrace()[0].getMethodName();
try {
throw exception;
}
catch(Exception e) {
assertEquals(thisMethod, e.getStackTrace()[0].getMethodName());
}
}
}
次のエラーが発生します。
Expected :stackTraceMentionsTheLocationWhereTheExceptionWasThrown
Actual :setUp
スタック トレースは完全に横たわっています。
例外がスローされたときにスタック トレースが書き換えられないのはなぜですか? 私は Java 開発者ではありません。ここで何かが足りないかもしれません。