„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie verspotte ich Methodenrückgaben an Echo-Eingabeargumente in Mockito?

Wie verspotte ich Methodenrückgaben an Echo-Eingabeargumente in Mockito?

Veröffentlicht am 04.11.2024
Durchsuche:612

How to Mock Method Returns to Echo Input Arguments in Mockito?

Verspottete Methodenrückgabe: Echo von Eingabeargumenten

Beim Testen von Software kann es von Vorteil sein, wenn verspottete Methoden die Argumente zurückgeben, an die übergeben werden ihnen. Dieses Verhalten kann besonders nützlich sein, wenn Interaktionen überprüft oder der Datenfluss durch ein System getestet wird.

Für Mockito-Versionen 1.9.5 und höher kann diese Funktionalität prägnant mithilfe von Lambda-Ausdrücken erreicht werden:

when(myMock.myFunction(anyString())).thenAnswer(i -> i.getArguments()[0]);

In diesem Fall stellt der i-Parameter eine InvocationOnMock-Instanz dar, die Zugriff auf die bietet Argumente, die an die verspottete Methode übergeben werden.

Für frühere Versionen von Mockito ist eine benutzerdefinierte Antwort erforderlich:

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

Mit diesem Ansatz gibt der Mock denselben String zurück, der an myFunction() übergeben wurde.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729678268 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3