Google-Mock-ByRef-Methode
Ich habe eine Klasse, die einen Booleschen Wert als Referenzparameter verwendet und eine Ganzzahl zurückgibt:
class Foo
{
public:
Bar my_bar;
virtual int myMethod(bool &my_boolean) = 0;
}
/*...*/
int Foo::myMethod(bool &my_boolean){
if (my_bar == NULL){
my_boolean = false;
return -1;
}
else{
my_boolean = true;
return 0;
}
}
Und ich habe ein Mock für diese Klasse erstellt:
class MockFoo : public Foo
{
MOCK_METHOD1(myMethod,int(bool &my_boolean));
}
Ich habe Probleme beim Festlegen der Erwartungen für diese Art von Funktion, da ich den Rückgabewert festlegen mussund Der Referenzparameter auf bestimmte Werte, um meine Einheitentests ordnungsgemäß zu erstellen. Wie kann ich mit dieser Art von Funktion mit gmock umgehen?
using ::testing::SetArgPointee;
class MockMutator : public Mutator {
public:
MOCK_METHOD2(Mutate, void(bool mutate, int* value));
...
};
...
MockMutator mutator;
EXPECT_CALL(mutator, Mutate(true, _))
.WillOnce(SetArgPointee<1>(5));
Aber entweder habe ich das Beispiel nicht verstanden oder es war in diesem Fall nicht anwendbar. Hat sich jemand zuvor mit einer solchen Situation befasst?
Danke im Voraus.