Heim > Java > javaLernprogramm > Hauptteil

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

Mary-Kate Olsen
Freigeben: 2024-10-23 22:13:02
Original
680 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php
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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!