10

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&));
};
4

1 回答 1

20

我找到了答案,您需要将模拟方法专门表示为模板模拟方法,并带有_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/docs/gmock_cheat_sheet.md#mocking-a-class-template-mocktemplate

于 2013-08-13T06:31:54.540 回答