如何使用 const/non 模拟重载函数
How do I mock an overloaded function with const/non
如何模拟以下代码?
class ISomeClass
{
public:
virtual ~ISomeClass() {} = 0;
virtual const MyType & getType() const = 0;
virtual MyType & getType() = 0;
};
我已经尝试了以下方法,但它不起作用。你能帮帮我吗?
class MockSomeClass : public ISomeClass
{
public:
using MyTypeConstRefType = const MyType&;
using MyTypeRefType = MyType&;
public:
MOCK_METHOD0(getType, MyTypeConstRefType(void) const);
MOCK_METHOD0(getType, MyTypeRefType(void));
};
它们为 const
成员函数 ("methods") 提供了一组单独的宏:MOCK_CONST_METHOD#
。所以在你的情况下,它将是:
MOCK_CONST_METHOD0(getType, MyTypeConstRefType());
用法与MOCK_METHOD#
相同,第一个参数是函数名,第二个参数是函数类型。
如何模拟以下代码?
class ISomeClass
{
public:
virtual ~ISomeClass() {} = 0;
virtual const MyType & getType() const = 0;
virtual MyType & getType() = 0;
};
我已经尝试了以下方法,但它不起作用。你能帮帮我吗?
class MockSomeClass : public ISomeClass
{
public:
using MyTypeConstRefType = const MyType&;
using MyTypeRefType = MyType&;
public:
MOCK_METHOD0(getType, MyTypeConstRefType(void) const);
MOCK_METHOD0(getType, MyTypeRefType(void));
};
它们为 const
成员函数 ("methods") 提供了一组单独的宏:MOCK_CONST_METHOD#
。所以在你的情况下,它将是:
MOCK_CONST_METHOD0(getType, MyTypeConstRefType());
用法与MOCK_METHOD#
相同,第一个参数是函数名,第二个参数是函数类型。