gmock - 测试模拟方法参数

gmock - testing mock method arguments

本文关键字:方法 参数 模拟 测试 gmock      更新时间:2023-10-16

我有以下模拟方法:

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

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

根据容器匹配器的 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());