单元测试/集成测试以下内容的最佳方法是什么:
@Service("fooService")
public class FooService {
@Resource(name = "sessionFactory")
private SessionFactory sessionFactory;
/*** Get all **/
@Transactional(readOnly = true)
public List<Foo> getAllFoos() {
final Session session = sessionFactory.getCurrentSession();
final Criteria crit = session.createCriteria(Foo.class);
return crit.list();
}
}
我很高兴使用mockito,但不确定如何利用它的实用性。我见过的大多数情况都需要将 dao/mock dao 作为方法参数传入。
显然我会推断出更复杂的方法。
最佳答案
这个类是 DAO,从模拟 Session 等中没有太多好处,除非你有很多逻辑在里面 - 如果你这样做,那么最好将其放置在实际的服务类或模型本身上。
考虑一下您要在这里测试什么:这些方法是否从数据库返回它们应该返回的内容。我会针对内存数据库运行集成测试。
关于java - 使用 hibernate 和注释的单元测试服务层,没有 DAO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9263681/