如何使用 const/non 模拟重载函数

0xB*_*F00 5 c++ googlemock

我如何模拟以下代码?

class ISomeClass
{
public:
   virtual ~ISomeClass() {} = 0;
   virtual const MyType & getType() const = 0;
   virtual MyType & getType() = 0;
};
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法,但不起作用。你能帮我么?

class MockSomeClass : public ISomeClass
{
public:
    using MyTypeConstRefType = const MyType&;
    using MyTypeRefType = MyType&;

public:
    MOCK_METHOD0(getType, MyTypeConstRefType(void) const);

    MOCK_METHOD0(getType, MyTypeRefType(void));
};
Run Code Online (Sandbox Code Playgroud)

BoB*_*ish 6

它们提供一组独立的宏的const成员函数(“方法”): MOCK_CONST_METHOD#。所以在你的情况下,它将是:

MOCK_CONST_METHOD0(getType, MyTypeConstRefType());
Run Code Online (Sandbox Code Playgroud)

用法与 相同MOCK_METHOD#,在第一个参数中采用函数名称,在第二个参数中采用函数类型。