Как отлаживать тесты JUnit, аналогичные обычной программе Java в Eclipse
В eclipse, если я запускаю программу Java в режиме отладки без точек останова, и если JVM попадает в NullPointerException, Eclipse любезно выделит строку нарушения кода и покажет локальные переменные и т.д. Выполнение приостанавливается. Я могу оценить код с помощью вкладки "Экран" и т.д.
Но если я запускаю тест JUnit в режиме отладки, а jvm обращается к исключению NullPointerException, jvm не останавливается, и у меня нет возможности увидеть локальные переменные.
Можно ли запускать тесты JUnit, чтобы JVM автоматически приостанавливалась, когда я попадал в исключение NullPointerException, не используя точки останова?
Изменить:
Использование JUnit 4 и Juno
Ответы
Ответ 1
Eclipse останавливается, когда исключение, которое было выбрано, не было обнаружено и вывело бы вас из main(). Однако, когда вы запускаете среду JUnit, все исключения попадают в JUnit, поэтому Eclipse не останавливается.
Приходят в голову два решения:
- установить исключение brekpoint для остановки при выбросе NPE
- используйте трассировку стека исключений, сообщенную JUnit, и установите точку останова в строке, которая генерирует исключение (которое я предпочитаю).
Ответ 2
Наведите курсор на эту строку кода, а затем нажмите step over
или f6
Ответ 3
Вы можете увидеть его на вкладке JUnit, если вы дважды щелкните по строке, которая имеет проблему, вы перейдете в место, где произошло исключение нулевого указателя.
java.lang.NullPointerException <--First line of the error
at.com.myProject.MyClass.myMethod(MyClass.java:theLineOfMyCode) <-- the line that you should double-click
После этого вы будете перенаправлены на строку ошибки.
Ответ 4
- Откройте контрольный пример Junit или Junit Test Suite, который вы хотите запустить.
- Поместите свою точку останова.
- Щелкните правой кнопкой мыши по файлу и выберите "Отладка как"> "Тест Junit".