gmock - 测试模拟方法参数

时间:2016-02-24 13:18:57

标签: c++ unit-testing googletest googlemock

我有以下模拟方法:

MOCK_METHOD1(send, void(const std::vector<int>& data));

如何检查是否使用特定参数调用该方法,例如std::vector<int> vec{1,2,3}

2 个答案:

答案 0 :(得分:2)

根据container matchers上的gmock文档,对于建议的用例,您可以这样做:

EXPECT_CALL(mockObj, send(std::vector<int>{1,2,3}).Times(1);

答案 1 :(得分:1)

假设你的模拟对象名为mockObj,这就是你如何将参数与所需的向量匹配:

std::vector<int> dataToMatch{ 1, 2, 3 };
EXPECT_CALL(mockObj, send(ElementsAreArray(dataToMatch.cbegin(), dataToMatch.cend())))
    .WillOnce(Return());