У меня есть класс, который принимает логическое значение в качестве опорного параметра и возвращает целое число:Google издеваться ByRef метод
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;
}
}
И я создал макет для этого класса:
class MockFoo : public Foo
{
MOCK_METHOD1(myMethod,int(bool &my_boolean));
}
Я имея проблемы с тем, как установить ожидания для такого типа функции, потому что мне нужно установить возвращаемое значение и ссылочным параметром для определенных значений, чтобы правильно создать мои модульные тесты. Как я могу справиться с этой функцией с помощью gmock? Я пробовал следовать тому, что я думал как решение по документации:
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));
Но или я не понял пример или это не применимо для этого никому case.Has дело ти такой ситуации раньше?
Заранее спасибо.
Тогда я не понимаю, в чем ваш вопрос. Можете ли вы рассказать о своих проблемах? Код кажется правильным для меня. Или вы хотите знать, как установить ожидания для эталонного параметра аналогично? 'ByRef()' было бы отлично для этого. –
+1 Это трудно получить из примеров повара. –