Heim >Java >javaLernprogramm >Wie kann ich in Mockito ein Argument an eine verspottete Methode zurückgeben?
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!