当前位置: 首页 > 知识库问答 >
问题:

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

余弘毅
2023-03-14

我的问题和Mockito一样:Mock私有字段初始化,但是对于Google Mock框架。简而言之:

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

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

在为Target类进行单元测试时,如何模拟Person实例?

共有1个答案

郎雅昶
2023-03-14

这里没有答案:简单地说,不要这样做。

您的问题是在这里调用new。事情是:这使得测试变得困难,而且它还在targetperson类之间创建了非常紧密的耦合。

默认的替代方案是:为target类提供一个工厂,它为您创建Person对象。

    null
 类似资料:
  • 问题内容: 在Java中,在抽象类中使用私有构造函数的目的是什么? 在一个评论中,我得到了这个问题,我很好奇,在什么情况下我们需要以这种方式使用构造函数? 我认为它可以与抽象类中的另一个构造函数一起使用,但这非常简单。它也可以用于构造将超过抽象类的静态内部类。 也许还有更优雅的用法? 问题答案: 如果构造函数是类的 唯一 构造函数,则原因很明确:防止子类化。一些类仅充当静态字段/方法的持有者,而不

  • 我正在研究一个springboot应用程序,它公开了一些不返回原始实体的endpoint,但它们返回了它们的DTO。为了映射所有的实体,我使用version:2.3.8和project Lombok来避免实现getters、setters和其他一些实用程序。 这些是源实体(我删除了一些属性和Hibernate注释,因为它们在示例中不是必需的): user.java Player.java Coac

  • 问题内容: 如何从Java的构造函数中获取实例化对象? 我想为某些GUI类存储对父对象的引用,以模拟事件冒泡-调用父处理程序-但我不想更改所有现有代码。 问题答案: 简短的回答:Java没有办法做到这一点。(您可以找到哪个班级叫您,但以下较长的答案在大多数情况下也适用于您。) 长话大说:依赖于被调用的地方,魔术地表现不同的代码几乎总是一个坏主意。这会使必须维护您代码的人感到困惑,并且严重损害了您的

  • 问题内容: 我看到很多执行“松散”私有变量/功能的python代码。他们将用一个下划线(例如_foo)声明函数/变量,然后仅在类/文件中使用它。他们不使用双下划线确实让我感到烦恼,因为最终,有人会从班级外部将此人称为“私人”成员。 是否有某种方法可以在单个下划线上强制执行隐私(不更改为双下划线)?谢谢! 问题答案: 否。这就是python的理念:不要让编译器/解析器强制执行隐私,因为 想要 访问私

  • 在下面的代码片段中,变量服务和查询是私有的。 保持它们私有有什么用? 有什么帮助? 注意:我已经阅读了多个与堆栈溢出相关的问题和答案,但找不到任何有效的答案。

  • 在这个代码片段中,我想弄清楚以下的顺序:1)初始化/安装派生类变量;2)调用基类构造函数 我的理解是,首先安装派生类,然后调用基类构造函数,然后初始化派生类变量y。这个顺序正确吗?