Подтвердить что ты не робот

Как отлаживать тесты JUnit, аналогичные обычной программе Java в Eclipse

В eclipse, если я запускаю программу Java в режиме отладки без точек останова, и если JVM попадает в NullPointerException, Eclipse любезно выделит строку нарушения кода и покажет локальные переменные и т.д. Выполнение приостанавливается. Я могу оценить код с помощью вкладки "Экран" и т.д.

Но если я запускаю тест JUnit в режиме отладки, а jvm обращается к исключению NullPointerException, jvm не останавливается, и у меня нет возможности увидеть локальные переменные.

Можно ли запускать тесты JUnit, чтобы JVM автоматически приостанавливалась, когда я попадал в исключение NullPointerException, не используя точки останова?

Изменить: Использование JUnit 4 и Juno

4b9b3361

Ответ 1

Eclipse останавливается, когда исключение, которое было выбрано, не было обнаружено и вывело бы вас из main(). Однако, когда вы запускаете среду JUnit, все исключения попадают в JUnit, поэтому Eclipse не останавливается.

Приходят в голову два решения:

  • установить исключение brekpoint для остановки при выбросе NPE
  • используйте трассировку стека исключений, сообщенную JUnit, и установите точку останова в строке, которая генерирует исключение (которое я предпочитаю).

Ответ 2

  • Двойной щелчок установите точку останова

  • Используйте режим Debug для запуска в Eclipse

Наведите курсор на эту строку кода, а затем нажмите 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

  1. Откройте контрольный пример Junit или Junit Test Suite, который вы хотите запустить.
  2. Поместите свою точку останова.
  3. Щелкните правой кнопкой мыши по файлу и выберите "Отладка как"> "Тест Junit".