java - 如何访问 Java 中的私有(private)类成员?

标签 java unit-testing jpa mocking private

我有包含私有(private)字段的数据模型类,这些字段是只读的(通过 getter 函数)。这些字段由我的 JPA 持久性提供程序 (eclipselink) 在正常操作期间使用数据库的内容设置。对于单元测试,我想将它们设置为来自持久层模型的假值。我怎样才能做到这一点?无论如何,eclipselink 是如何设置这些值的?

简化示例:

@Entity
class MyEntity
{
    @Id
    private Integer _ix;

    public Integer ixGet()
    {
        return this._ix;
    }
}

最佳答案

您能否只模拟实体本身,提供您自己的 getter 实现?

您可以在您的模拟持久层中创建一个匿名扩展:

MyEntity x = new MyEntity() {
    public Integer ixGet() { return new Integer(88); }
};

关于java - 如何访问 Java 中的私有(private)类成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1306166/

相关文章:

java - RingtoneManager 返回空铃声

Java:读取 XML 文件并将信息存储在文本文件中的快速方法

java - 我可以绕过达到命令的最长时间吗?

java - 我可以只使用 powermock+mockito+junit 模拟一些静态方法吗?

javascript - Angular 单元测试 : how to test controller properties without scope

java - JPA:如何使用 SHA1 加密保留列?

java - 慢速 Swing 组件的“图像拉伸(stretch)”代理?

ios - 我们可以在单元测试时检查 uitextfield 的验证吗?

sql - jpa 查询不支持 DateAdd 函数

java - 同一实体的并发更新