Heim >Java >javaLernprogramm >Wie kann man private Methoden mit PowerMock und Mockito effektiv verspotten?

Wie kann man private Methoden mit PowerMock und Mockito effektiv verspotten?

Linda Hamilton
Linda HamiltonOriginal
2024-11-03 19:19:03301Durchsuche

How to Effectively Mock Private Methods with PowerMock and Mockito?

Alternative Lösung zum Verspotten privater Methoden mit PowerMock

Obwohl bei der ursprünglich vorgeschlagenen Lösung mit PowerMock Schwierigkeiten auftraten, hat sich ein alternativer Ansatz als erfolgreich erwiesen. Mit einer Kombination aus Mockito und PowerMock ist es möglich, private Methoden effektiv zu verspotten.

Wie im bereitgestellten Codeausschnitt dargestellt, verfügt die Klasse CodeWithPrivateMethod über eine öffentliche Methode meaningPublicApi, die eine private Methode doTheGamble aufruft. Um das Verhalten von doTheGamble zu verspotten, nutzt die Testklasse CodeWithPrivateMethodTest PowerMock, um eine Instanz der Originalklasse auszuspionieren, und verwendet Mockito, um den gewünschten Rückgabewert anzugeben.

In diesem speziellen Szenario wird die private Methode doTheGamble aufgerufen Bei beliebigen String- und Integer-Argumenten wird die Anweisung gegeben, „true“ zurückzugeben. Dies führt dazu, dass die öffentliche Methode meaningPublicApi eine RuntimeException auslöst.

Die vollständige Testkonfiguration wird durch die Annotation @PrepareForTest von PowerMock erreicht, die sicherstellt, dass die zu testende Klasse für die Spionage vorbereitet ist. Der Test wird mit dem PowerMockRunner ausgeführt, der das Verspotten statischer und privater Methoden erleichtert.

Das obige ist der detaillierte Inhalt vonWie kann man private Methoden mit PowerMock und Mockito effektiv verspotten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn