Heim >Java >javaLernprogramm >Wie verspotte ich bestimmte statische Methoden, die Objekte in Java zurückgeben, mit Mockito und PowerMock?
Verspotten spezifischer statischer Methoden zur Rückgabe von Objekten
Mockito und PowerMock bieten robuste Unterstützung für das Verspotten statischer Methoden. Es kann jedoch schwierig sein, eine einzelne statische Methode zu verspotten und sie ein Objekt zurückgeben zu lassen.
Konflikte und Aufrufprobleme vermeiden
Beim Verspotten einer statischen Methode, die ein Objekt zurückgibt Bei einem Objekt ist es wichtig, Abweichungen in den Rückgabetypen zu vermeiden. Das Verspotten aller statischen Methoden mit einer Standardstrategie (z. B. die Rückgabe von Null für objektwertige Methoden) kann zu Fehlern führen.
PowerMockito.mockStatic(Static.class, new Answer
Statisches Mocking und zielspezifische Methode aktivieren
Die Lösung besteht darin, die Konzepte des statischen Methoden-Mockings und des gezielten Methoden-Stubbings zu kombinieren. PowerMockito.mockStatic ermöglicht statisches Mocking für eine Klasse, während die when-thenReturn-Syntax es Ihnen ermöglicht, bestimmte Methoden zu blockieren.
PowerMockito.mockStatic(Static.class);
when(Static.m1(param1, param2) ).thenReturn(1000l);
Dieser Ansatz ermöglicht statisches Mocking für alle Methoden von Static.class überschreibt jedoch nicht die standardmäßige Stubbing-Strategie. Durch die Verwendung von when-thenReturn unterbrechen Sie explizit die m1-Methode, um 1000l zurückzugeben.
Beachten Sie die MockStatic-Überladungen
PowerMockito bietet zwei Überladungen für mockStatic. Die Ein-Argument-Überladung (mockStatic(Static.class)) ermöglicht statisches Mocking ohne eine Standardstrategie. Mit der Überladung mit zwei Argumenten (mockStatic(Static.class, Answer
Abhängig von Ihrem spezifischen Testszenario können Sie sich für die Verwendung einer von beiden entscheiden dieser Überlastungen. Wenn Sie nur eine bestimmte Methode verspotten oder mehrere Rückgabewerte für verschiedene Methodenaufrufe festlegen möchten, ist die Überladung mit einem Argument besser geeignet.
Das obige ist der detaillierte Inhalt vonWie verspotte ich bestimmte statische Methoden, die Objekte in Java zurückgeben, mit Mockito und PowerMock?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!