春季数据 JPA.如何从存储库中清除数据,以便从特定测试类运行单元测试



我对用 spring data jpa 编写的持久性内容的单元测试有问题。

对于特定的存储库,我有一个单元测试,以确保一切正常。我还有一个集成测试。当我为特定测试类运行它时,每个测试都会通过。但是当我运行整个测试包时,我得到了很多麻烦,因为我将以前的测试中的记录插入到数据库中。

当然,在每个测试类中,我可以添加@After方法来清理每个数据,但我想问一下,是否可以在不添加方法的情况下从数据库@After运行测试之前清理数据库中的所有数据?

此致敬意。

使用Spring的事务测试支持来确保数据库更改在每次测试后回滚:

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/testing.html#testcontext-tx

在访问真实数据库的测试中,一个常见问题是它们的影响 暂留存储的状态。即使您使用 开发数据库,对状态的更改可能会影响将来的测试。 此外,许多操作(例如插入或修改持久化) 数据 — 无法在事务之外执行(或验证)。

TestContext 框架解决了这个问题。默认情况下, 框架将为每个测试创建和回滚一个事务。

最新更新