谷歌模拟:就是在目标类的构造函数实例模拟私有变量成员(Google Mock: Mock priva

2019-09-29 01:21发布

我的问题是一样的Mockito:模拟私有字段初始化但对于谷歌模拟框架。 简而言之:

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

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

我怎么能嘲笑person实例,同时制作单元测试Target类?

Answer 1:

非答案在这里:根本就没有做这种方式。

你的问题是调用new位置。 事情是:使测试难,同时也建立了之间的非常紧密的耦合TargetPerson类。

默认的选择是:提供一个工厂Target ,创造一流的Person对你的对象。

通过去该解决方案,您

  • 避免需要模拟调用new
  • 你结束了一个更好的设计!

除非我误读了文件 ,嘲讽的呼吁new是不可能的C ++反正嘲讽。



文章来源: Google Mock: Mock private variable member that is instantiated in target class's constructor