Google próbna metoda ByRef
Mam klasę, która pobiera wartość logiczną jako parametr odniesienia i zwraca liczbę całkowitą:
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;
}
}
I stworzyłem próbę dla tej klasy:
class MockFoo : public Foo
{
MOCK_METHOD1(myMethod,int(bool &my_boolean));
}
Mam problemy z ustawieniem oczekiwań dla tego rodzaju funkcji, ponieważ muszę ustawić wartość zwracanąi parametr referencyjny do określonych wartości, aby poprawnie utworzyć moje testy jednostkowe. Jak mogę radzić sobie z tego rodzaju funkcją z gmock? Próbowałem postępować zgodnie z tym, co uważałem za rozwiązanie w dokumentacji:
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));
Ale albo nie zrozumiałem tego przykładu, albo nie miało to zastosowania w tym przypadku. Czy ktoś wcześniej zajmował się tą sytuacją?
Z góry dziękuję.