googlemock - 模拟一个返回复杂数据类型的方法 [英] googlemock - mock a method that returns a complex datatyp

查看:357
本文介绍了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 - 模拟一个返回复杂数据类型的方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆