【问题标题】:gmock - testing mock method argumentsgmock - 测试模拟方法参数
【发布时间】:2016-02-24 13:18:56
【问题描述】:

我有以下模拟方法:

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

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

【问题讨论】:

    标签: c++ unit-testing googletest googlemock


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      假设您的模拟对象被命名为mockObj,这就是您将参数与所需向量匹配的方法:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-01-19
        • 2013-03-10
        • 1970-01-01
        • 1970-01-01
        • 2016-07-20
        • 2013-04-05
        • 1970-01-01
        相关资源
        最近更新 更多