2017-09-11 27 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宏觀不後權。