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

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

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

08-19 09:44