我在我的项目中使用 gmock 并且遇到了为模拟函数设置自定义引用变量的问题。我使用过 SetArgPointee 和 Return ,但该函数只能获取返回值。
我的模拟功能是
MOCK_METHOD1_WITH_CALLTYPE(__stdcall, get_length, HRESULT(long *p));
我的测试是这样的:
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 无法获取值,任何人都可以告诉我为什么以及如何获取值,谢谢。