googlemock:无法创建模拟类的对象

时间:2018-03-16 09:53:02

标签: c++ googlemock

我有一个使用speedInterface的类Car(它有一个参考) 现在我想用Mock_SpeedInterface模拟speedInterface。

class speedInterface
{
public:
    virtual ~speedInterface() {}

    virtual int GetSpeed(void) = 0;
};

class Mock_SpeedInterface : public speedInterface
{
public:
    MOCK_CONST_METHOD0(GetSpeed, int());
};

class Car 
{
public:
    Car(speedInterface& s) : Speedo(s) {}
    virtual ~Car() {}

    speedInterface& Speedo;
    ...

};
TEST(TestCar, Test1) {
    Mock_SpeedInterface mockSpeed;
...
}  

尝试创建mockSpeed会导致以下编译器错误:

  

错误C2259' Mock_SpeedInterface':无法实例化抽象类

IMHO类Mock_SpeedInterface不是一个抽象类,因为它"实现" GetSpeed。 为什么我会收到此错误,如何防止此错误?

1 个答案:

答案 0 :(得分:0)

似乎 MOCK_CONST_METHOD0(GetSpeed, int()); 是错误的。为了得到一个普通的答案,我将引用 OP 的评论:

<块引用>

将其更改为 MOCK_METHOD0 修复它。