我想在@BeforeClass中创建一些数据并在我的@Test方法中使用它们。 在所有测试完成(失败或成功)之后,我想回滚数据。
是否可以使用注释@BeforeClass,@ Transaction来实现,而无需明确清理数据?
答案 0 :(得分:0)
我们在这里遇到了类似的问题。我们的解决方案是为每个测试类提供一个嵌入式H2数据库(只需要几秒钟来设置第一个;之后,它不再是真正引人注目的了。)
这允许我们将任何类型的测试数据加载到数据库中,所有测试运行后都无需清理它。
每个测试仍然获得自己的事务,因此在每次单独测试之后,每个类的数据库将回滚到原始状态。
要调试测试,我们将使用@Transactional(rollback=false)
注释单个测试,因此我们可以使用SQL工具查看数据库。
另一个测试将检查所有测试类,寻找此注释以确保没有人意外地提交它。