Google Mock:在目标类的构造函数中实例化的Mock私有变量成员

时间:2017-07-05 02:20:43

标签: c++ unit-testing tdd googletest googlemock

我的问题与Mockito: Mock private field initialization相同,但适用于Google Mock框架。简而言之:

class Target {
private:
    Person person = new Person();

public:
    void testMethod() {
        person.someMethod();
    }
};

如何在为person课程进行单元测试时模拟Target实例?

1 个答案:

答案 0 :(得分:3)

这里没有回答:根本不这样做。

您的问题是此处拨打new。事情是:这会使测试变得困难,并且它还会在TargetPerson类之间产生非常紧密的耦合。

默认替代方案是:为Target类提供 factory ,为您创建Person个对象。

通过寻找解决方案,你

  • 避免模拟对new
  • 的调用
  • 你最终得到了更好的设计!

除非我误读documentation,否则无论如何都无法使用C ++模拟来调用new