模拟静态函数成员

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

我正在尝试使用gmock模拟静态函数成员。我在gMock Cookbook上找到了有关模拟免费功能的部分。但是我不清楚。

例如,我有一个要模拟的静态函数isActiveMode。不必直接调用isActiveMode,我必须为其引入一个接口,并具有一个调用静态函数的具体子类:

class MyClassInterface { 

public:
...
virtual bool isActive() = 0;

};

class MyClass: public MyClassInterface { 

public:
...
virtual bool isActive() 
{ 
    return isActiveMode();
} 

};

然后定义模拟类:

class MyMock {

public:
MOCK_METHOD(bool, isActive, (), (override));

};

但是这似乎不起作用。有人对如何进行这项工作有任何线索吗?

c++ unit-testing googletest gmock googlemock
1个回答
0
投票

您的模拟类应从接口类派生。

class MyMock : public MyClassInterface {

public:
MOCK_METHOD(bool, isActive, (), (override));

};

如果没有帮助,请提供minimum reproducible example以显示您如何使用该模拟。

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