The*_*heo 13 dbunit unit-testing jpa jpa-2.0
我希望在每个测试用例之后清理数据库而不回滚事务.我已经尝试过DBUnit的DatabaseOperation.DELETE_ALL,但如果删除违反了外键约束,它就不起作用.我知道我可以禁用外键检查,但这也会禁用对测试的检查(我想阻止).
我正在使用JUnit 4,JPA 2.0(Eclipselink)和Derby的内存数据库.有任何想法吗?
谢谢,西奥
Chr*_*haw 18
最简单的方法是使用nativeQuery jpa方法.
@After
public void cleanup() {
EntityManager em = entityManagerFactory.createEntityManager();
em.getTransaction().begin();
em.createNativeQuery("truncate table person").executeUpdate();
em.createNativeQuery("truncate table preferences").executeUpdate();
em.getTransaction().commit();
}
Run Code Online (Sandbox Code Playgroud)
简单:在每次测试之前,启动一个新事务,在测试之后,回滚它。这将为您提供与以前相同的数据库。
确保测试不会创建新交易;而是重用现有的。
| 归档时间: |
|
| 查看次数: |
16697 次 |
| 最近记录: |