捕获gmock中回调的参数

时间:2016-10-27 16:56:28

标签: c++ googletest gmock

我有一个对象有这样的方法:

mockObj.foo(cb);

其中cb是以下签名的函数:

void cb(vector<A> &, vector<B> &);

有没有办法捕获传递给cb的2个参数,看看函数是否做了我想做的事情?我希望cb被称为N次。

1 个答案:

答案 0 :(得分:0)

如果你想测试Obj类正在做什么 - 单元测试Obj类在分离中,比如(当然我知道真正的Obj::cb没有清除输入 - 这只是一个示例):

TEST(ObjTest, shouldResetInput)
{
    vector<A> aa(1);
    vector<B> bb(1);
    Obj objUnderTest;
    objUnderTest.cb(aa, bb);
    ASSERT_TRUE(aa.empty());
    ASSERT_TRUE(bb.empty());
}

在使用Obj的其他对象中,将其注入ObjMock并仅检查此cb函数是否按预期输入调用 - 检查输入{{3 }}。如果您希望此Obj客户端在调用函数后更改输入,请使用Container Matchers