Не удается отладить код Mockito / JUnit в Eclipse, отлично работает только с JUnit - PullRequest
10 голосов
/ 01 июля 2010

У меня есть тесты JUnit, которые работают просто отлично. Добавил Mockito в мою сборку, и я пытаюсь поставить точку останова в моем тесте JUnit, который использует Mockito для макета некоторых публичных методов. Когда я пытаюсь запустить отладчик для класса, я получаю сообщение об ошибке «невозможно установить точку останова в XXX из-за отсутствующих атрибутов номера строки. Измените параметры компилятора для создания атрибутов номера строки». Я проверил мой компилятор, и я генерирую номера строк выбран.

Ответы [ 6 ]

2 голосов
/ 25 июля 2016

Исключение, которое вы видите, вызвано попыткой отладки динамически генерируемых пустых методов mock, созданных функцией mock () .Исходя из вашего вопроса, похоже, что вы на самом деле хотите использовать частичные имитации вместо полных, где только некоторые методы моделируются, а оставшиеся вызовы делегируются реальной реализации.

Чтобы создать частичные моделирования, вам следуетиспользовать метод spy () вместо метода mock () .Итак, используйте

MyClass myMock = spy(new MyClass());

вместо

 MyClass myMock = mock(MyClass.class);
2 голосов
/ 16 ноября 2011

Попробуйте удалить и заново добавить точки останова, возможно, текущая точка останова ссылается на старую версию класса.Только это!

Возможно этот пост в группе Mockito может вам помочь.

1 голос
/ 05 октября 2015

У меня такие же сообщения (Eclipse Luna).

Несмотря на большое количество сообщений об ошибках, отладка все еще работает, если отладчик достигает вашей точки останова. Вам просто нужно нажать «ОК» на всех них или отключить эти сообщения.

Я думаю, что проблема возникает из-за размещения точек останова в расширенном классе (вероятно, mockito динамически расширяет макетируемые классы), а Eclipse не может отследить исходный код.

0 голосов
/ 06 июня 2018

Происходит, когда вы ставите точку останова в смоделированном методе

0 голосов
/ 01 декабря 2015

Помимо того, что этот вопрос был старым, у меня была та же проблема сегодня, и решение было довольно простым, но потребовалось некоторое время, чтобы разобраться с этим.Так что это может помочь тем, кто спотыкается здесь.

Я только что установил несколько старых точек останова, и один из них указывал на какой-то измененный код, так что записанная позиция точки останова больше не была хорошей.

Мой совет - попытаться удалить все ошибочные точки останова и переустановить их в текущем коде.После чистой сборки просто убедитесь, что указали на последний бинарный файл.:)

0 голосов
/ 01 июля 2010

Если это происходит только при использовании Mockito, то, может быть, это потому, что Mockito был скомпилирован без поддержки отладчика?

Кроме того, убедитесь, что для тестовых классов установлены те же настройки компилятора, что и для обычного кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...