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);