我有一个对象有这样的方法:
mockObj.foo(cb);
其中cb是以下签名的函数:
void cb(vector<A> &, vector<B> &);
有没有办法捕获传递给cb的2个参数,看看函数是否做了我想做的事情?我希望cb
被称为N
次。
答案 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。