模拟函数与签名中的类模板参数

时间:2013-08-13 06:26:27

标签: c++ testing mocking gmock

使用gmock可以模拟一个包含类模板参数的函数吗?例如:

template <typename T>
struct Mockable
{
    virtual void do_work(const int num, const T& value) = 0;
};

template <typename T>
struct MockMockable : Mockable<T>
{
    MOCK_METHOD2(do_work, void(const int, const T&));
};

1 个答案:

答案 0 :(得分:12)

我找到了答案,您需要将模拟方法专门表示为具有_T

的模板模拟方法
template <typename T>
struct MockMockable : Mockable<T>
{
    MOCK_METHOD2_T(do_work, void(const int, const T&));
};

更多信息: https://github.com/google/googletest/blob/master/googlemock/docs/CheatSheet.md#mocking-a-class-template

(不确定是删除还是留下?)