【发布时间】:2016-02-24 13:18:56
【问题描述】:
我有以下模拟方法:
MOCK_METHOD1(send, void(const std::vector<int>& data));
如何检查是否使用特定参数调用了该方法,例如 std::vector<int> vec{1,2,3} ?
【问题讨论】:
标签: c++ unit-testing googletest googlemock
我有以下模拟方法:
MOCK_METHOD1(send, void(const std::vector<int>& data));
如何检查是否使用特定参数调用了该方法,例如 std::vector<int> vec{1,2,3} ?
【问题讨论】:
标签: c++ unit-testing googletest googlemock
根据container matchers 上的 gmock 文档,对于建议的用例,您可以简单地这样做:
EXPECT_CALL(mockObj, send(std::vector<int>{1,2,3}).Times(1);
【讨论】:
假设您的模拟对象被命名为mockObj,这就是您将参数与所需向量匹配的方法:
std::vector<int> dataToMatch{ 1, 2, 3 };
EXPECT_CALL(mockObj, send(ElementsAreArray(dataToMatch.cbegin(), dataToMatch.cend())))
.WillOnce(Return());
【讨论】: