【发布时间】:2017-07-25 03:15:57
【问题描述】:
我正在使用 GoogleTest 和 GoogleMock 为 C++ 类编写单元测试。我当前的代码如下所示:
MockNetConnector* connector = new MockNetConnector();
NetClient* client = new NetClient(connector);
TEST_F(NetClientTest, connect)
{
EXPECT_CALL(*connector, attempt_connect(_,_)).Times(3)
.WillOnce(Return(false))
.WillOnce(Return(false))
.WillOnce(Return(true));
std::string srv_list = "127.0.0.1:30001,127.0.0.2:30002,127.0.0.3:30003";
bool is_connected = client->connect(srv_list);
ASSERT_TRUE(is_connected);
}
如您所见,(*connector).attempt_connect(_,_) 目前不验证输入参数。现在我希望它在每次调用时验证输入,即调用 x-thx, 3000x) /em>。
我知道如何验证固定值的参数,例如attempt_connect(StrEq("127.0.0.1"),Eq(30001)),但不知道如何验证因调用而异的参数。
【问题讨论】:
标签: c++ unit-testing googletest googlemock