Я использую JUnit для написания тестов более высокого уровня для устаревшего кода, который не имеет модульных тестов.Есть ли способ заставить JUnit терпеть неудачу при любом неконтролируемом исключении, даже если проглотил
Большая часть этого кода «проглатывает» множество неконтролируемых исключений, таких как NullPointerExceptions (например, просто распечатывая трассировку стека и возвращая нуль). Поэтому единичный тест может пройти даже через каскад катастроф в разных точках кода нижнего уровня.
Есть ли способ провалить тест при первом неконтролируемом исключении, даже если они проглочены?
Единственная альтернатива, о которой я могу думать, это написать обычную оболочку JUnit, которая перенаправляет System.err, а затем анализирует вывод для исключений.
Нет, как бы JUnit знал об исключении, если он проглотил до того, как код JUnit достигнут? Но, возможно, вы не должны полагаться на все, что происходит в устаревшем коде, и просто убедитесь, что ваш код верен.В конце концов, когда что-то пойдет не так, что влияет на результат вашего кода, ваш тест должен потерпеть неудачу. – FRotthowe
@FRotthowe: Я использую JUnit для записи регрессионных тестов и тестов оболочки для существующих компонентов устаревшего кода. У меня нет моего собственного кода. проблема в том, что я хочу поймать эти внутренние сбои, тем более, что люди поддерживают внутренний код. – Uri