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!