Heim >Java >javaLernprogramm >Wie verspotte ich private Methoden in Mockito mit PowerMock?

Wie verspotte ich private Methoden in Mockito mit PowerMock?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-03 16:00:30294Durchsuche

How to Mock Private Methods in Mockito with PowerMock?

Private Methoden in Mockito mit PowerMock verspotten

Das Testen von Klassen mit privaten Methoden kann eine Herausforderung darstellen, insbesondere wenn die Korrektheit dieser privaten Methoden nicht gewährleistet ist vermutet. Eine Lösung hierfür ist die Verwendung von PowerMock in Verbindung mit Mockito.

Um eine private Methode mit PowerMock zu verspotten, befolgen Sie diese Schritte:

  1. Erstellen Sie ein Spionageobjekt: Verwenden Sie PowerMockito.spy(), um ein Spionageobjekt der Klasse zu erstellen, die Sie testen möchten.
  2. Verwenden Sie PowerMockito.when(): Definieren Sie das Verhalten der privaten Methode mit PowerMockito .Wann(). Diese Methode benötigt drei Parameter:

    • Das Spionageobjekt
    • Ein Methoden-Matcher (in diesem Fall reicht ein method()-Matcher aus)
    • Das zurückzugebende Verhalten wenn die private Methode aufgerufen wird

Zum Beispiel verspottet der folgende Code die private Methode „doTheGamble“, um immer true zurückzugeben:

<code class="java">CodeWithPrivateMethod spy = PowerMockito.spy(new CodeWithPrivateMethod());

when(spy, method(CodeWithPrivateMethod.class, "doTheGamble", String.class, int.class))
        .withArguments(anyString(), anyInt())
        .thenReturn(true);</code>
  1. Testen Sie die öffentliche Methode: Schließlich können Sie Ihr Spionageobjekt verwenden, um die öffentliche Methode zu testen, die die private Methode aufruft.

Indem Sie diese Schritte befolgen, können Sie Private effektiv verspotten Methoden zum Testen mit PowerMock und Mockito.

Das obige ist der detaillierte Inhalt vonWie verspotte ich private Methoden in Mockito mit PowerMock?. 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