如何 return gmock 中的输入参数之一
How to return one of the in-parameters in gmock
我认为这听起来很简单,但我似乎无法弄清楚如何去做。我正在使用这个模拟函数模拟 linux 套接字接口:
MOCK_CONST_METHOD4(send, int(int socketDescriptor, const void* buffer, size_t n, int flags));
我要return写入的字节数send
。
一个想法是这样的:
uint32_t nBytes = 0;
EXPECT_CALL(socketMock, send(124, _, _, MSG_NOSIGNAL))
.WillOnce(DoAll(SaveArg<2>(&nBytes),
Return(nBytes)));
但这总是 return 零。
我应该怎么做 Return(Arg<2>)
?
看着 CheatSheat 看起来这就是你想要的:
EXPECT_CALL(socketMock, send(124, _, _, MSG_NOSIGNAL))
.WillOnce(::testing::ReturnArg<2>()));
我认为这听起来很简单,但我似乎无法弄清楚如何去做。我正在使用这个模拟函数模拟 linux 套接字接口:
MOCK_CONST_METHOD4(send, int(int socketDescriptor, const void* buffer, size_t n, int flags));
我要return写入的字节数send
。
一个想法是这样的:
uint32_t nBytes = 0;
EXPECT_CALL(socketMock, send(124, _, _, MSG_NOSIGNAL))
.WillOnce(DoAll(SaveArg<2>(&nBytes),
Return(nBytes)));
但这总是 return 零。
我应该怎么做 Return(Arg<2>)
?
看着 CheatSheat 看起来这就是你想要的:
EXPECT_CALL(socketMock, send(124, _, _, MSG_NOSIGNAL))
.WillOnce(::testing::ReturnArg<2>()));