मैं SetArgPointee
के साथ एक नकली पर "आउट" पैरामीटर सेट करने का प्रयास कर रहा हूं। यहाँ कोड मैं परीक्षण कर रहा हूँ है:मैं googlemock के साथ SetArgPointee() का उपयोग क्यों नहीं कर सकता?
DWORD bodysize = 1024;
char body[1024];
HRESULT hr = req->ReadEntityBody(body, bodysize, false, &bodysize, NULL);
req
एक IHttpRequest* है, और मैं नकली में bodysize
, तर्क 3 स्थापित करने के लिए, चाहते हैं। यहाँ मेरी इकाई परीक्षण से कोड है:
EXPECT_CALL(req, ReadEntityBody(NotNull(), Ge(1024), false, NotNull(), _))
.WillOnce(SetArgPointee<3>(4))
.WillOnce(Return(ERROR_HANDLE_EOF));
यह निम्न अजीब त्रुटि में परिणाम है:
error C2440: 'return' : cannot convert from 'void' to 'long' (gmock/gmock-actions.h:369)
अगर मैं .WillOnce(SetArgPointee<3>(4))
बाहर टिप्पणी, कोड को संकलित और सही ढंग से निष्पादित करता है।
MOCK_METHOD5(ReadEntityBody, HRESULT(VOID *pvBuffer, DWORD cbBuffer, BOOL fAsync, DWORD *pcbBytesReceived, BOOL *pfCompletionPending));
और, मामले में यह मदद करता है, मेरी full mock of IHttpRequest: यहाँ नकली अपने आप में प्रासंगिक परिभाषा है।
मैं स्पष्ट रूप से अब पहले क्रियाओं को समझ नहीं पाया था, हे। सहायता के लिए धनयवाद! – ladenedge