我最近开始使用gmock作为我的代码,其中一些依赖于其他一些外部服务或接口,所以gmock对我来说是完美的。
说我有一个琐碎的A级来模拟
class A
{
void foo(int& bar) {
// will change bar
bar = GetingResultFromSomeOutsideService();
}
};
现在我创建一个模拟类
class MockA: public A
{
MOCK_METHOD1(foo, void(int& bar));
};
在我的测试用例中,我尝试使用A::foo
模仿bar
更改ON_CALL
的行为,但我不知道具体如何。
例如,我希望我的MockA::foo
始终将bar
设置为1,这样我调用A::foo
的其他代码将始终获得bar == 1
,如下所示:
// some other piece of codes invoking A::foo
int bar = 0;
A my_a;
my_a.foo(bar);
cout << bar; // always output "1" with gmock
任何提示?