我正在尝试模拟 静态函数成员 与 gmock。我在 gMock Cookbook 上找到了一个部分谈论模拟自由功能。但是我不清楚..
例如,我有一个名为 的静态函数。 isActiveMode 我想 mock 。而不是调用 isActiveMode 直接,我必须为它引入一个接口(interface),并有一个调用静态函数的具体子类:
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));
};
但这似乎不起作用..
有人知道如何进行这项工作吗?
最佳答案
您的模拟类应该派生自接口(interface)类。
class MyMock : public MyClassInterface {
public:
MOCK_METHOD(bool, isActive, (), (override));
};
如果这没有帮助,请提供 minimum reproducible example展示你如何使用模拟。
关于c++ - 模拟静态函数成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61376859/