Heim >Java >javaLernprogramm >Wie verspotte ich eine einzelne statische Methode, die mit PowerMockito ein Objekt zurückgibt?
Beim Umgang mit einer Klasse, die mehrere statische Methoden enthält, besteht die Herausforderung darin, eine einzelne statische Methode zu verspotten und sie gleichzeitig sicherzustellen gibt ein Objekt zurück. Hier ist eine detaillierte Lösung mit PowerMockito:
Statisches Mocking aktivieren:
Aktivieren Sie zunächst statisches Mocking für die Klasse, die Sie mit PowerMockito ändern möchten. mockStatic(Class.class). Dadurch können Sie spezifische Verhaltensweisen für statische Methoden innerhalb dieser Klasse einrichten.
Stubbing der Methode:
Um das Verhalten des Ziels festzulegen Verwenden Sie für die statische Methode die when-thenReturn-Syntax. Zum Beispiel:
when(Class.m1(param1, param2)).thenReturn(objectToReturn);
Dies gibt an, dass m1 beim Aufruf mit den angegebenen Parametern das bereitgestellte Objekt zurückgeben soll.
Standardrückgabewerte vermeiden :
Standardmäßig stellt PowerMockito seine eigenen Standardwerte für statische Methoden ohne Stubs bereit. Um dies zu überschreiben und ein benutzerdefiniertes Objekt zurückzugeben, ist es wichtig, die 1-Argument-Version von mockStatic zu verwenden, ohne eine Standardstrategie anzugeben.
Beispielimplementierung:
Bedenken Sie den folgenden Codeausschnitt:
PowerMockito.mockStatic(Static.class); when(Static.m1("param1", "param2")).thenReturn(new Object());
Dieser Code verspottet die statische Methode m1 in der Static-Klasse und stoppt sie, um eine neue Instanz eines Objekts zurückzugeben.
Verwendung der Mocked-Methode:
Einmal die statische Methode verspottet und gestubbelt ist, können Sie es wie gewohnt verwenden. Der Methodenaufruf wird von PowerMockito abgefangen und gibt das angegebene Objekt zurück.
Denken Sie daran, dass der Hauptunterschied hier darin besteht, die 1-Argument-Version von mockStatic zu verwenden, um statisches Mocking ohne Angabe einer Standardstrategie zu ermöglichen und dann die Syntax „when-thenReturn“ verwenden, um eine einzelne statische Methode zu stubbeln, um ein Objekt zurückzugeben.
Das obige ist der detaillierte Inhalt vonWie verspotte ich eine einzelne statische Methode, die mit PowerMockito ein Objekt zurückgibt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!