为什么MOCK_METHOD语法在GMock中不起作用?

问题描述 投票:0回答:1

我什至尚未开始测试,即使我正确地遵循了GMock的文档,我也遇到了GMock的MOCK_METHOD宏的一些语法问题。可能是编译器问题吗?我有:

MingGW(GCC 4.9.2)

Googletest 1.10.x

class SimpleClass {

public:
    virtual int simpleFirstFunction(int a, int b) { return (a + simpleSecondFunction(b)); }
    virtual int simpleSecondFunction(int b) { return (2 * b); }
    virtual ~SimpleClass();
};


class MockSimpleClass :public SimpleClass {
    MOCK_METHOD(int, simpleSecondFunction, (int a, int b), (override));
};

我看到3个编译器错误:

错误-1:关于函数名称

MockSimpleClass.cpp:18:24:错误:

'simpleSecondFunction'不是类型MOCK_METHOD(int,simpleSecondFunction(int a,int b),(override));

错误-2:关于输入参数

MockSimpleClass.cpp:18:46:错误:

['标记前的预期标识符MOCK_METHOD(int,simpleSecondFunction,(int a,int b),(override));

错误-3:关于“替代”周围的括号]

MockSimpleClass.cpp:18:60:错误:

['标记前的预期标识符MOCK_METHOD(int,simpleSecondFunction(int a,int b),(override));

我什至尚未开始测试,即使我正确地遵循了GMock的文档,我也遇到了GMock的MOCK_METHOD宏的一些语法问题。可能是编译器问题吗?我有:...

c++ gmock
1个回答
1
投票

听起来好像MOCK_METHOD宏未定义。您是否正确设置了包含路径,并在文件顶部添加了#include "gmock/gmock.h"指令?您还缺少public访问说明符,该函数的参数数目错误。

© www.soinside.com 2019 - 2024. All rights reserved.