Heim  >  Artikel  >  Java  >  Wie kann ich in Mockito ein Argument an eine verspottete Methode zurückgeben?

Wie kann ich in Mockito ein Argument an eine verspottete Methode zurückgeben?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-23 22:13:02681Durchsuche

How to Return an Argument to a Mocked Method in Mockito?

Wie man mit Mockito eine simulierte Methode dazu bringt, ein an sie übergebenes Argument zurückzugeben

Mockito ist ein Java-Mocking-Framework, das die Erstellung von Scheinobjekten zu Testzwecken ermöglicht. Mocking-Methoden helfen dabei, Code unabhängig von seinen Abhängigkeiten zu testen. In diesem Szenario möchten wir eine Methode verspotten, um einen Wert zurückzugeben, der ihr während des Methodenaufrufs übergeben wurde.

Lösung:

Seit Mockito-Version 1.9.5 und Java 8 können Lambda-Ausdrücke verwendet werden, um die gewünschte Funktionalität zu erreichen. So geht's:

<code class="java">when(myMock.myFunction(anyString())).thenAnswer(i -> i.getArguments()[0]);</code>

In diesem Lambda-Ausdruck stellt i eine Instanz von InvocationOnMock dar und i.getArguments()[0] ruft das erste Argument ab, das an die simulierte Methode übergeben wird.

Alternative Lösung für ältere Versionen:

Für ältere Versionen von Mockito kann eine Antwort implementiert werden, um das gleiche Ergebnis zu erzielen. Hier ist ein Beispiel:

<code class="java">when(mock.myFunction(anyString())).thenAnswer(new Answer<String>() {
    @Override
    public String answer(InvocationOnMock invocation) throws Throwable {
        Object[] args = invocation.getArguments();
        return (String) args[0];
    }
});</code>

In dieser Answer-Implementierung wird das Argumentarray von der InvocationOnMock-Instanz abgerufen und das erste Argument (String) zurückgegeben.

Mit diesen Methoden können Sie Konfigurieren Sie simulierte Methoden in Mockito, um Werte basierend auf den an sie übergebenen Argumenten zurückzugeben, was flexiblere und realistischere Testszenarien ermöglicht.

Das obige ist der detaillierte Inhalt vonWie kann ich in Mockito ein Argument an eine verspottete Methode zurückgeben?. 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