集成测试 - Hibernate和DbUnit

Mar*_*ark 4 java orm dbunit integration-testing hibernate

我正在JUnit中编写一些集成测试.这里发生的是当我连续一起运行所有测试(而不是单独)时,数据库中持久存储的数据总是会发生变化,测试会在执行期间发现意外数据(由前一个测试插入).

我正在考虑使用DbUnit,但我想知道它是否重置每次执行之间的自动增量索引(因为测试还会检查持久化实体的ID).

谢谢

M.

Pas*_*ent 9

测试执行之前将数据库置于已知状态并且DBUnit提供所需的一切是最佳实践.但是,不要依赖自动递增的列,也将它们放在DBUnit数据集中.优点:您可以在执行失败的测试后手动验证数据库状态.缺点:您需要设置和维护数据集.

另一种方法是在事务中运行每个测试方法(并在执行结束时回滚事务).优点:数据更易于设置和维护(在数据库中).缺点:修复失败的测试不太方便.