如何在gmock中返回一个in-parameters

时间:2017-04-05 07:15:41

标签: c++ unit-testing gmock

我认为这听起来很简单,但我似乎无法弄明白该怎么做..我正在使用这个模拟函数嘲笑一个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>)

1 个答案:

答案 0 :(得分:4)

CheatSheat看起来这就是你想要的:

EXPECT_CALL(socketMock, send(124, _, _, MSG_NOSIGNAL))
    .WillOnce(::testing::ReturnArg<2>()));