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

时间:2017-08-07 12:18:49

标签: unit-testing gmock

我最近开始使用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

任何提示?

0 个答案:

没有答案