Ich habe eine ziemlich komplexe Java-Funktion, die ich mit jUnit testen möchte und verwende Mockito für diesen Zweck. Diese Funktion sieht wie folgt aus:Eingabeparameter einer void-Funktion ändern und danach lesen
public void myFunction (Object parameter){
...
doStuff();
...
convert(input,output);
...
parameter.setInformationFrom(output);
}
Die Funktion convert setzt die Attribute der Ausgang auf Eingang abhängig und es ist eine Hohlraumtyp-Funktion, obwohl die „Ausgabe“ Parameter ist, was verwendet wird, als ob es durch die zurückgegeben wurden Funktion. Diese Konvertierungsfunktion ist das, was ich nachbilden möchte, da ich mich nicht auf die Eingabe für den Test verlassen muss, aber ich weiß nicht, wie ich das machen soll, da ich mit Mockito nicht sehr vertraut bin.
Ich habe als when(something).thenReturn(somethingElse)
oder doAnswer Methode grundlegende Fälle gesehen, die ich verstehe mit der vorherige, aber mehr Logik ähnelt kann hinzugefügt werden, aber ich glaube nicht, diese Fälle für meinen Fall angemessen sind, als mein Funktion hat keine Rückgabeanweisung.
Und was wollen Sie bis verspotten? Die Ausgabe? – fge
Mockito beiseite, wissen Sie, dass das Schreiben von 'parameter = output;' nicht den Wert der Variablen ändert, die Sie an diese Methode übergeben? –
@David Wallace, wenn der Parameter "a" ist, ich die reale Funktion myFunction und den I-Print-Parameter aufrufen, dann wird der Parameter zum Beispiel "ab" sein. Es ist nicht genau "parameter = output", ich habe das nur geschrieben, um den Code zu verstehen. Entschuldigung für die Verwirrung. – Juan