从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目的是否明智,以便您可以轻松地进行测试?
我同意你的最后声明。将数据与引擎分开。