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

public class MyPojo{
    private final Object interestingData;

    MyPojo(Object data){
        interestingData = data;
    }

   //Methods etc...
}


Hibernate正在填充最后一个字段,而包private construtor则仅用于单元测试。我想给构造函数其他对象来执行应该在测试中可以模拟的逻辑。例如。

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

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

   //Methods etc...
}


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

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

最佳答案

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

09-11 03:25