我认为这听起来很简单,但我似乎无法弄明白该怎么做..我正在使用这个模拟函数嘲笑一个linux套接字接口:
MOCK_CONST_METHOD4(send, int(int socketDescriptor, const void* buffer, size_t n, int flags));
我想返回用send
写的字节数。
有一个想法是:
uint32_t nBytes = 0;
EXPECT_CALL(socketMock, send(124, _, _, MSG_NOSIGNAL))
.WillOnce(DoAll(SaveArg<2>(&nBytes),
Return(nBytes)));
但这总是会返回零。
我应该怎样做Return(Arg<2>)
?
答案 0 :(得分:4)
看CheatSheat看起来这就是你想要的:
EXPECT_CALL(socketMock, send(124, _, _, MSG_NOSIGNAL))
.WillOnce(::testing::ReturnArg<2>()));