首页 文章

使用Spring @ContextConfiguration进行事务测试 - 清除数据库问题

提问于
浏览
2

我在JUnit测试类中运行我的DAO测试,该测试类附带了正确的@ContextConfiguration和@RunWith注释 . 个别测试将一些数据放入数据库并检查健全性 . 在此之后,他们应该清理数据库状态 . 有一种简单的方法 - 将方法/类标记为@Transactional,然后在事务中执行方法并按原样执行回滚 .

问题是这种DAO测试方法并不能完全模拟环境 . 说,我的JPA实体中有一些延迟加载的收集字段 . 在我的控制器代码中,我使用myDao.getMyEntity(id)调用获取此实体并迭代延迟集合 . 我在应用程序运行时获得的是一个LazyInitializationException,但这不会在我的测试中发生,因为它实际上是事务性的 . 如何在测试不是@Transactional的情况下运行我的测试,但数据仍然在测试结束时被清除?

如果它有任何区别,我会使用内存中的HSQLDB进行测试 .

2 回答

相关问题