Ich habe JUnit-Tests, die gut laufen. Mockito wurde zu meinem Build hinzugefügt und ich versuche, einen Breakpoint in meinen JUnit-Test zu setzen, der Mockito verwendet, um einige der öffentlichen Methoden auszuprobieren. Wenn ich versuche, den Debugger für die Klasse auszuführen, erhalte ich den Fehler "Kann den Haltepunkt in XXX aufgrund fehlender Zeilennummernattribute nicht installieren. Ändern Sie die Compileroptionen, um Zeilennummernattribute zu generieren." Ich habe meinen Compiler überprüft und ich generiere Zeilennummern ausgewählt.
Versuchen Sie, indem Sie Ihre Haltepunkte entfernen und erneut hinzufügen. Möglicherweise verweist ein aktueller Haltepunkt nur auf eine alte Version einer Klasse. Nur das!
Vielleicht kann dieser Beitrag in der Mockito-Gruppe Ihnen weiterhelfen.
Ich habe die gleichen Nachrichten (Eclipse Luna).
Trotz der großen Anzahl von Fehlermeldungen funktioniert das Debugging immer noch, wenn der Debugger den Haltepunkt erreicht. Sie müssen nur auf "OK" klicken oder diese Nachrichten deaktivieren.
Ich denke, das Problem rührt von der Platzierung von Haltepunkten in einer erweiterten Klasse her (Mockito erweitert wahrscheinlich dynamisch die gespielten Klassen) und Eclipse kann den Quellcode nicht aufspüren.
Die Ausnahme, die Sie sehen, wird durch den Versuch verursacht, dynamisch generierte leere Mock-Methoden zu debuggen, die von der Funktion mock () erstellt wurden. Aus Ihrer Frage sieht es so aus, als wollten Sie tatsächlich partielle Mocks anstelle von vollen Mocks verwenden, wobei nur einige Methoden verspottet werden und die verbleibenden Aufrufe an die reale Implementierung delegiert werden.
Um partielle Mocks zu erstellen, sollten Sie anstelle der Methode mock () die Methode spy () verwenden. Also, benutze
%Vor%statt
%Vor%Wenn es nur passiert, wenn Sie Mockito verwenden, dann liegt es vielleicht daran, dass Mockito ohne Debugger-Unterstützung kompiliert wurde?
Überprüfen Sie außerdem, ob Sie die gleichen Compilereinstellungen für Ihre Testklassen wie für Ihren normalen Code haben.
Abgesehen davon, dass diese Frage alt war, hatte ich heute dasselbe Problem und die Lösung war ziemlich einfach, aber ich brauchte einige Zeit, um es herauszufinden. Das kann also hilfreich sein, wer hier stolpert.
Ich hatte gerade einen alten Haltepunkt gesetzt und einer von ihnen zeigte auf einen veränderten Code, so dass die aufgezeichnete Haltepunktposition nicht mehr gut war.
Ich rate dazu, alle anstößigen Breakpoints zu entfernen und sie im aktuellen Code neu zu installieren. Nach einem sauberen Build, nur um sicher zu sein, auf die neueste Binärdatei zu zeigen. :)