Ich habe JUnit-Tests, die einfach gut laufen. Ich habe Mockito zu meinem Build hinzugefügt und versuche, einen Haltepunkt in meinen JUnit-Test zu setzen, der Mockito verwendet, um einige der öffentlichen Methoden zu spiegeln. Wenn ich versuche, den Debugger für die Klasse auszuführen, erhalte ich die Fehlermeldung "Aufgrund fehlender Zeilennummernattribute kann kein Haltepunkt in XXX installiert werden. Ändern Sie die Compiler-Optionen, um Zeilennummernattribute zu generieren." Ich habe meinen Compiler überprüft und Zeilennummern generieren ist ausgewählt.
Antworten
Zu viele Anzeigen?Die Ausnahme, die Sie sehen, wird durch den Versuch verursacht, dynamisch generierte leere Mock-Methoden zu debuggen, die von der mock() Funktion. Aus Ihrer Frage geht hervor, dass Sie eigentlich partielle Mocks anstelle von vollständigen Mocks verwenden möchten, bei denen nur einige Methoden gespottet werden und die restlichen Aufrufe an die tatsächliche Implementierung delegiert werden.
Um partielle Mocks zu erstellen, sollten Sie die spionieren() Methode statt der Methode mock() Methode. Also, verwenden Sie
MyClass myMock = spy(new MyClass());
anstelle von
MyClass myMock = mock(MyClass.class);
Versuchen Sie, Ihre Haltepunkte zu entfernen und neu hinzuzufügen. Es könnte sein, dass ein aktueller Haltepunkt auf eine alte Version einer Klasse verweist. Genau das!
Vielleicht dieser Beitrag in der Mockito-Gruppe kann Ihnen helfen.
Ich habe die gleichen Meldungen (Eclipse Luna).
Trotz der vielen Fehlermeldungen funktioniert das Debugging noch, wenn der Debugger auf Ihren Haltepunkt trifft. Sie müssen nur bei allen Meldungen auf "ok" klicken oder diese Meldungen deaktivieren.
Ich denke, das Problem entsteht dadurch, dass Haltepunkte auf eine erweiterte Klasse gesetzt werden (mockito erweitert wahrscheinlich dynamisch die gespotteten Klassen) und Eclipse nicht in der Lage ist, den Quellcode zurückzuverfolgen.
- See previous answers
- Weitere Antworten anzeigen
0 Stimmen
Welche Version von Mockito verwenden Sie?
0 Stimmen
Ich musste eine
org.mockito.plugins.MockMaker
für das Mocking der finalen Klasse, was es mir nicht ermöglicht, den Quellcode zu debuggen.