In Mockito können wir mehrere Returns angeben (aus hier ) :
%Vor%Gibt es eine Möglichkeit, mehrere Renditen für einen mit gmock gemachten Schein anzugeben? Derzeit habe ich:
%Vor% was nicht kompiliert wird, weil ich mehrere Rücksendungen in gmock nicht herausfinden kann. Ist das mit gmock möglich? Wenn nicht, gibt es einen anderen Weg, dieses Problem zu lösen? Ich habe festgestellt, dass wir EXPECT
mehrere Rückgabewerte wie:
Ich habe jedoch keine Dokumente gefunden, die mehrere Returns mit ON_CALL
verspotteten.
ON_CALL
wird mehr zum Festlegen des Standardverhaltens der Funktion verwendet. I.e. Sie wissen, dass im getesteten Code die Mocked-Funktion aufgerufen wird, Sie wollen einen Standardwert setzen, aber es ist eigentlich nicht wichtig, wie oft die Funktion aufgerufen wird.
Das Beispiel :
%Vor% Um Ihr gewünschtes Verhalten zu erreichen, verwende ich Erwartungen - Sie haben bereits ein Beispiel dafür angegeben Frage, nur um mehr zu zeigen - ein Beispiel, wenn Sie 1
, 2
dann immer 3
erwarten:
EXPECT_CALL
"way" könnte problematisch sein, wenn Sie dies in der Test-Appliance SetUp
festlegen möchten - und bei einigen Tests wird foo
nur einmal aufgerufen. Aber natürlich gibt es Möglichkeiten, ON_CALL
return value für nachfolgende Aufrufe zu "steuern" - aber Sie müssen es mit speziellen Aktionen tun - wie das Ergebnis einer Funktion zu bekommen - wie in diesem Beispiel:
@ PiotrNycz's Antwort ist korrekt und die bevorzugte Lösung.
Ein alternativer Ansatz über eine Lambda-Funktion kann Ihnen mehr Flexibilität geben:
%Vor%Tags und Links c++ mockito googletest googlemock gmock