我有一个将布尔值作为参考参数并返回整数的类:
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));
但是要么我不理解这个例子,要么它不适用于这个案例。以前有没有人处理过这种情况?
提前致谢。