我正在尝试使用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));
};
但是这似乎不起作用。有人对如何进行这项工作有任何线索吗?
您的模拟类应从接口类派生。
class MyMock : public MyClassInterface {
public:
MOCK_METHOD(bool, isActive, (), (override));
};
如果没有帮助,请提供minimum reproducible example以显示您如何使用该模拟。