0

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

这可以使用注释@BeforeClass、@Transactional 来实现,而无需显式清理数据吗?

4

1 回答 1

0

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

这使我们可以将任何类型的测试数据加载到数据库中,而无需在所有测试运行后对其进行清理。

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

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

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

于 2013-09-10T15:44:52.653 回答