本文介绍了googlemock - 模拟一个返回复杂数据类型的方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想嘲笑一个返回复杂数据类型的方法
I want to mock a method that returns a complex datatyp
class aClass
{
public:
virtual const QMap<QString, QString> aMethod() const;
}
class MockaClass : public aClass
{
public:
MOCK_CONST_METHOD0(aMethod, const QMap<QString, QString>());
}
此代码不编译:宏MOCK_CONST_METHOD0传递了3个参数,只需2
This code does not compile: "macro "MOCK_CONST_METHOD0" passed 3 arguments, but takes just 2"
我认为googlemock宏不理解QMap并将逗号作为参数分隔符。
I think that the googlemock macro does not understand QMap and interpret the comma as parameter separator.
有没有办法告诉googlemock QMap是返回值?
Is there a way to tell googlemock that QMap is the return value?
推荐答案
只需使用 typedef
像这样:
class aClass
{
public:
typedef const QMap<QString, QString> MyType;
virtual MyType aMethod() const;
}
class MockaClass : public aClass
{
public:
MOCK_CONST_METHOD0(aMethod, MyType());
}
这篇关于googlemock - 模拟一个返回复杂数据类型的方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!