Das Schreiben von Unit-Tests kann schwierig sein und manchmal muss gutes Design allein dem Zweck der Testbarkeit geopfert werden. Testbarkeit entspricht oft einem guten Design, aber das ist nicht immer der Fall. Beispielsweise können endgültige Klassen und Methoden nicht verwendet werden, private Methoden müssen manchmal geschützt oder unnötigerweise an einen Mitarbeiter verschoben werden, statische Methoden sollten vollständig vermieden werden und so weiter, einfach aufgrund der Einschränkungen bestehender Frameworks.
PowerMock ist ein Framework, das andere Mock-Bibliotheken wie EasyMock um leistungsfähigere Funktionen erweitert. PowerMock verwendet einen benutzerdefinierten Klassenlader und eine Bytecode-Manipulation, um das Verspotten statischer Methoden, Konstruktoren, endgültiger Klassen und Methoden, privater Methoden, das Entfernen statischer Initialisierer und mehr zu ermöglichen. Durch die Verwendung eines benutzerdefinierten Klassenladers müssen keine Änderungen an der IDE oder den Continuous-Integration-Servern vorgenommen werden, was die Einführung vereinfacht. Entwickler, die mit den unterstützten Mock-Frameworks vertraut sind, werden die Verwendung von PowerMock als einfach empfinden, da die gesamte Erwartungs-API sowohl für statische Methoden als auch für Konstruktoren gleich ist. PowerMock zielt darauf ab, die vorhandenen APIs um eine kleine Anzahl von Methoden und Anmerkungen zu erweitern, um die zusätzlichen Funktionen zu ermöglichen. Derzeit unterstützt PowerMock EasyMock und Mockito.
Beim Schreiben von Unit-Tests ist es oft sinnvoll, die Kapselung zu umgehen. Daher enthält PowerMock mehrere Funktionen, die die Reflektion vereinfachen und besonders für Tests nützlich sind. Dies ermöglicht einen einfachen Zugriff auf den internen Status, vereinfacht aber auch teilweises und privates Mocking.
Bitte beachten Sie, dass PowerMock hauptsächlich für Personen mit Expertenkenntnissen im Unit-Testen gedacht ist. Es in die Hände von Nachwuchsentwicklern zu legen, kann mehr schaden als nützen.
@PowerMockIgnore
sowie Fehlerbehebungen und anderen Verbesserungen veröffentlicht. Weitere Informationen finden Sie in den Versionshinweisen und im Änderungsprotokoll.Ältere Nachrichten
Bitte lesen Sie die Richtlinie für einen neuen Mitwirkenden, bevor Sie beginnen.
Treten Sie hier der Mailingliste für Fragen, Feedback und Unterstützung bei.