【问题标题】:Mocking static function member模拟静态函数成员
【发布时间】:2020-04-22 23:32:30
【问题描述】:

我正在尝试使用 gmock 模拟 静态函数成员。我在gMock Cookbook 上找到了一个关于 Mocking Free Functions 的部分。但是我不清楚..

例如,我想模拟一个名为 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 googlemock


    【解决方案1】:

    你的模拟类应该派生自接口类。

    class MyMock : public MyClassInterface {
    
    public:
    MOCK_METHOD(bool, isActive, (), (override));
    
    };
    

    如果这没有帮助,请提供 minimum reproducible example 说明您是如何使用模拟的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多