c++ - googlemock - 模拟一个返回复杂数据类型的方法

标签 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>());
}

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

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

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

最佳答案

只需像这样使用typedef:

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

class MockaClass : public aClass
{
public:
   MOCK_CONST_METHOD0(aMethod, MyType());
}

关于c++ - googlemock - 模拟一个返回复杂数据类型的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10207490/

相关文章:

c++ - 在gtest中调用另一个TEST_F中的一个TEST_F

c++ - CMake 添加(测试)可执行文件

c++ - 是否可以在 Google Mock 中做出范围内的期望?

c++ - 如何使用 google mock 在 C++ 中模拟继承链

c++ - 如何在谷歌测试中测试多线程?

c++ - 如何验证传递给模拟函数的参数的派生类型

c++ - 从另一个命名空间访问标准命名空间数据成员

c# - 将嵌套结构从 C# 编码到 C++ DLL

c++ - 如何在MFC中的CArray中使用CArray?

c++ - 在 C++ Builder 中使用 COM