使用jeeunit时如何在每次测试后重置数据库?

时间:2012-02-06 08:22:00

标签: java testing java-ee

我想知道在使用jeeunit(或任何其他java ee应用程序测试框架)时,是否有人在每次测试之前成功清理数据库内容?

我已尝试使用jeeunit文档中描述的@Transactional注释,它将回滚所有完成的事务。但是有些情况(会话被刷新),其中所做的更改在测试之间持续存在,从而导致测试污染。

感谢任何帮助/指导!

4 个答案:

答案 0 :(得分:1)

由于您提到了“任何其他Java ee应用程序测试框架”,我建议您查看Arquillian Persistence Extension以对Java EE应用程序进行单元测试。您可以在此处找到有关如何使用它的教程:http://www.softwarepassion.com/java-ee-6-testing-with-arquillian-persistence-extension/

有关arquillian本身的更多信息here

答案 1 :(得分:0)

DBUnit旨在帮助解决这个问题 - 他们的网站是here

答案 2 :(得分:0)

Spring框架的AbstractTransactionalJUnit4SpringContextTests是另一个好的开始。

你可以通过在连接执行之前设置autoCommit(false)并在代码运行后回滚来自己完成。

答案 3 :(得分:0)

我的解决方案是将jeeunit与h2 db一起使用,并在每次测试之前通过本机SQL强行删除数据库中的所有行。

相关问题