gmock - 测试模拟方法参数
gmock - testing mock method arguments
我有以下模拟方法:
MOCK_METHOD1(send, void(const std::vector<int>& data));
如何检查是否使用特定参数调用了该方法,例如 std::vector<int> vec{1,2,3}
?
假设您的模拟对象被命名为 mockObj
,这就是您将参数与所需向量匹配的方法:
std::vector<int> dataToMatch{ 1, 2, 3 };
EXPECT_CALL(mockObj, send(ElementsAreArray(dataToMatch.cbegin(), dataToMatch.cend())))
.WillOnce(Return());
根据 container matchers 上的 gmock 文档,对于建议的用例,您可以简单地执行:
EXPECT_CALL(mockObj, send(std::vector<int>{1,2,3}).Times(1);
我有以下模拟方法:
MOCK_METHOD1(send, void(const std::vector<int>& data));
如何检查是否使用特定参数调用了该方法,例如 std::vector<int> vec{1,2,3}
?
假设您的模拟对象被命名为 mockObj
,这就是您将参数与所需向量匹配的方法:
std::vector<int> dataToMatch{ 1, 2, 3 };
EXPECT_CALL(mockObj, send(ElementsAreArray(dataToMatch.cbegin(), dataToMatch.cend())))
.WillOnce(Return());
根据 container matchers 上的 gmock 文档,对于建议的用例,您可以简单地执行:
EXPECT_CALL(mockObj, send(std::vector<int>{1,2,3}).Times(1);