1

我在我的项目中使用 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 无法获取值,任何人都可以告诉我为什么以及如何获取值,谢谢。

4

0 回答 0