Die Klasse, die ich testen möchte, erhält einen Client-Wrapper:
Die getestete Klasse (snippest)
%Vor%Die Testinitialisierung:
%Vor% Im Beispiel gebe ich immer "100" zurück, aber die Anfrage hat ein Attribut id
und ich möchte verschiedene Werte auf client.get(Request)
basierend auf dem request.getId()
Wert zurückgeben.
Wie kann ich es tun?
Sie können Mockitos Antworten verwenden, anstatt:
%Vor%schreiben:
%Vor% Sie könnten eine ArgumentMatcher
erstellen, damit Sie die Request
nach ID abgleichen können.
Also würde der Argument-Matcher so aussehen:
importieren Sie org.mockito.ArgumentMatcher;
%Vor%Dann könnten Sie es wie folgt verwenden:
%Vor% Andernfalls würde auch die Verwendung von Answer
funktionieren, aber mit ArgumentMatcher
können Sie den Code "deklarativer" machen.
Um es richtig und mit minimalem Code zu machen, müssen Sie ArgumentMatcher
, lambda expression & amp; Nicht vergessen , die Filterelemente in ArgumentMatcher
lambda auf Null zu prüfen (besonders, wenn Sie mehr als einen Mock mit demselben ArgumentMatcher
haben).
Angepasster Argument-Matcher:
%Vor%Verwendung:
%Vor%