Mar*_*n G 3 c++ unit-testing gmock
我认为这听起来很简单,但我似乎无法弄清楚如何去做..我正在使用这个模拟功能模拟一个 linux 套接字接口:
MOCK_CONST_METHOD4(send, int(int socketDescriptor, const void* buffer, size_t n, int flags));
Run Code Online (Sandbox Code Playgroud)
我想返回用send.
一个想法是这样的:
uint32_t nBytes = 0;
EXPECT_CALL(socketMock, send(124, _, _, MSG_NOSIGNAL))
.WillOnce(DoAll(SaveArg<2>(&nBytes),
Return(nBytes)));
Run Code Online (Sandbox Code Playgroud)
但这将始终返回零。
我应该怎么做Return(Arg<2>)?
看看CheatSheat看起来这就是你想要的:
EXPECT_CALL(socketMock, send(124, _, _, MSG_NOSIGNAL))
.WillOnce(::testing::ReturnArg<2>()));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5206 次 |
| 最近记录: |