Spring事务测试 - 在BeforeClass中准备数据

时间:2013-09-10 15:34:59

标签: spring transactions

我想在@BeforeClass中创建一些数据并在我的@Test方法中使用它们。 在所有测试完成(失败或成功)之后,我想回滚数据。

是否可以使用注释@BeforeClass,@ Transaction来实现,而无需明确清理数据?

1 个答案:

答案 0 :(得分:0)

我们在这里遇到了类似的问题。我们的解决方案是为每个测试类提供一个嵌入式H2数据库(只需要几秒钟来设置第一个;之后,它不再是真正引人注目的了。)

这允许我们将任何类型的测试数据加载到数据库中,所有测试运行后都无需清理它。

每个测试仍然获得自己的事务,因此在每次单独测试之后,每个类的数据库将回滚到原始状态。

要调试测试,我们将使用@Transactional(rollback=false)注释单个测试,因此我们可以使用SQL工具查看数据库。

另一个测试将检查所有测试类,寻找此注释以确保没有人意外地提交它。