【问题标题】:Hibernate, simple dependency injection on user typeHibernate,对用户类型的简单依赖注入
【发布时间】:2011-03-16 08:37:58
【问题描述】:

question 开始对我的 POJO 进行单元测试:

public class MyPojo{
    private final Object interestingData;

    MyPojo(Object data){
        interestingData = data;
    }

   //Methods etc...
}

Hibernate 正在填充最终字段,并且包私有构造函数仅用于单元测试。我想为构造函数提供其他对象来执行在测试中应该可以模拟的逻辑。例如

public class MyPojo{
    private final Object interestingData;
    private final ILogicEngine engine;

    MyPojo(Object data, ILogicEngine engine){
        interestingData = data;
        this.engine = engine
    }

   //Methods etc...
}

让hibernate为每个POJO提供“引擎”的正确/简单方法是什么? Spring 似乎有点矫枉过正,因为在生产中只会有一个引擎,我这样做只是为了测试。我应该以某种方式通过 MyPojoUserType 注入 ILogicEngine 吗? (不确定这将如何工作,因为我自己不实例化它,hibernate 会)

或者这很臭,我应该保持代表数据库数据的对象干净并包装它们以使引擎工作?

【问题讨论】:

    标签: java unit-testing hibernate


    【解决方案1】:

    我认为我们在这里混合了 DI 和 ORM 的关注点。甚至尝试将休眠用于 DI 目的以便您可以轻松地测试事物是否明智? 我同意你最后的说法。将数据与引擎分开。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-03
      • 1970-01-01
      • 2018-06-29
      • 2014-01-02
      • 1970-01-01
      • 2023-03-19
      • 2016-03-23
      相关资源
      最近更新 更多