googlemock - 模拟返回复杂数据类型的方法

Jen*_*ich 7 c++ googletest googlemock

我想模拟一个返回复杂数据类型的方法

class aClass
{
public:
   virtual const QMap<QString, QString> aMethod() const;
}

class MockaClass : public aClass
{
public:
   MOCK_CONST_METHOD0(aMethod, const QMap<QString, QString>());
}
Run Code Online (Sandbox Code Playgroud)

此代码无法编译:"宏"MOCK_CONST_METHOD0"传递3个参数,但只需2"

我认为googlemock宏不理解QMap并将逗号解释为参数分隔符.

有没有办法告诉googlemock QMap是返回值?

nab*_*lke 17

只需使用typedef这样的:

class aClass
{
public:
   typedef const QMap<QString, QString> MyType;
   virtual MyType aMethod() const;
}

class MockaClass : public aClass
{
public:
   MOCK_CONST_METHOD0(aMethod, MyType());
}
Run Code Online (Sandbox Code Playgroud)