Heim > Java > javaLernprogramm > Wie verspotte ich eine einzelne statische Methode und gebe mit PowerMock ein benutzerdefiniertes Objekt zurück?

Wie verspotte ich eine einzelne statische Methode und gebe mit PowerMock ein benutzerdefiniertes Objekt zurück?

Mary-Kate Olsen
Freigeben: 2024-12-09 20:33:18
Original
443 Leute haben es durchsucht

How to Mock a Single Static Method and Return a Custom Object Using PowerMock?

PowerMock: Verspotten einer einzelnen statischen Methode, um ein Objekt zurückzugeben

Beim Verspotten statischer Methoden in Java kann es sein, dass Sie eine bestimmte Methode selektiv stubben und ein Objekt zurückgeben müssen benutzerdefiniertes Objekt. PowerMock bietet die notwendige Funktionalität, um dies zu erreichen.

Statisches Mocking aktivieren

Um statische Methoden zu verspotten, müssen Sie zunächst statisches Mocking für die Zielklasse mit PowerMockito.mockStatic() aktivieren. Allerdings kann die dieser Methode zugewiesene Standardantwortstrategie zu Typkonfliktfehlern führen, wenn die Klasse mehrere statische Methoden mit unterschiedlichen Rückgabetypen enthält.

Mocking and Stubbing

Stattdessen sollten Sie die eine verwenden -argument-Überladung von mockStatic(), um statisches Mocking zu aktivieren, und verwenden Sie dann PowerMockito.when() und thenReturn(), um das gewünschte Verhalten für die einzelne Methode anzugeben. Dadurch können Sie benutzerdefinierte Rückgabewerte für jede Stub-Methode definieren.

Beispielverwendung

Stellen Sie sich eine Klasse mit zwei statischen Methoden vor, von denen eine einen String und die andere einen int zurückgibt:

class ClassWithStatics {
  public static String getString() {
    return "String";
  }

  public static int getInt() {
    return 1;
  }
}
Nach dem Login kopieren

Um die getString()-Methode so zu stoppen, dass sie „Hallo!“ zurückgibt, würden Sie Folgendes tun Folgendes:

PowerMockito.mockStatic(ClassWithStatics.class);
when(ClassWithStatics.getString()).thenReturn("Hello!");
System.out.println("String: " + ClassWithStatics.getString());
Nach dem Login kopieren

Beachten Sie, dass die getInt()-Methode nicht explizit stubbed ist. Es wird das Standardverhalten der Rückgabe von 0 verwendet.

Fazit

Durch die Verwendung der richtigen Kombination aus statischen Mocking- und Stubbing-Techniken können Sie eine einzelne statische Methode selektiv verspotten und ein Objekt in PowerMock zurückgeben. Dadurch können Sie bestimmtes Verhalten statischer Methoden in Ihrem Java-Code testen und isolieren.

Das obige ist der detaillierte Inhalt vonWie verspotte ich eine einzelne statische Methode und gebe mit PowerMock ein benutzerdefiniertes Objekt zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage