プロジェクトで 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 は値を取得できません。値を取得する理由と方法を教えていただければ幸いです。