2017-09-11 34 views
0

我有一个嘲笑功能具有引用参数:GMock:在嘲笑功能捕获引用参数

MOCK_METHOD(func, void(MyObj &obj); 

我想拍摄的obj到一个变量,这样我可以调用它的方法单元测试。所以像这样:

MyObj *capturedObj; 
EXPECT_CALL(foo, func(testing::_)).WillOnce(<capture arg into capturedObj>); 
capturedObj->bar(); 

我该如何做到这一点?

回答

0

你可以写一个custom action吧:

ACTION_P(SaveArgAddress, p) { 
    p = &arg; 
} 

然后使用这个动作。

但只有当你在测试运行代码,并注意capturedObj将被初始化只有在EXPECT_CALL实际相匹配的电话 - 你执行EXPECT_CALL宏观不后权。