我在我的项目中使用gmock,我遇到了为mock函数设置自定义引用变量的问题。我使用了SetArgPointee和Return,但该函数只能获得返回值。
我的模拟功能是
MOCK_METHOD1_WITH_CALLTYPE(__stdcall, get_length, HRESULT(long *p));
我的TEST是这样的:
long pl = 10;
EXPECT_CALL(*ihtmlelemc, get_length(_)).WillOnce(DoAll(SetArgPointee<0>(pl), Return(S_OK)));
我的测试功能是
long len = 0;
HRESULT hr;
hr = pObjCollect->get_length(&len);
if (hr != S_OK || len == 0)
{
return E_NOINTERFACE;
}
当我运行测试时才发现thr hr是S_OK,len仍为0,len无法获取值,任何人都可以告诉我为什么以及如何获取值,谢谢。