Unit testing gmock可以模拟更改out参数的行为吗?

Unit testing gmock可以模拟更改out参数的行为吗?,unit-testing,gmock,Unit Testing,Gmock,我最近开始在代码中使用gmock,其中一些依赖于其他一些外部服务或接口,因此gmock对我来说有点完美 假设我有一个微不足道的a级要嘲笑 class A { void foo(int& bar) { // will change bar bar = GetingResultFromSomeOutsideService(); } }; 现在我创建一个模拟类 class MockA: public A { MOCK_METHOD1(f

我最近开始在代码中使用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
的行为,即使用
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
//调用::foo的其他一些代码
int bar=0;
A我的A;
我的阿福(酒吧);
无法复制的可能副本的可能副本