Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想在@BeforeClass 中创建一些数据并在我的@Test 方法中使用它们。在所有测试完成(失败或成功)后,我想回滚数据。
这可以使用注释@BeforeClass、@Transactional 来实现,而无需显式清理数据吗?
我们在这里遇到了类似的问题。我们的解决方案是为每个测试类提供一个嵌入式 H2 数据库(设置第一个只需要几秒钟;之后,它就不再那么明显了)。
这使我们可以将任何类型的测试数据加载到数据库中,而无需在所有测试运行后对其进行清理。
每个测试仍然有自己的事务,因此在每个单独的测试之后,每个类的数据库都会回滚到原始状态。
为了调试测试,我们将使用 注释单个测试@Transactional(rollback=false),因此我们可以使用 SQL 工具查看数据库。
@Transactional(rollback=false)
另一项测试将检查所有测试类,查找此注释以确保没有人意外提交它。