首页 > 解决方案 > 如何隔离集成测试?

问题描述

在许多集成测试中进行数据库操作时,如何以自动方式(使用某些框架)确保数据库的状态在任何测试之前和之后是相同的?

我对手动方式不感兴趣(@Before @After

标签: javaspring-bootjunitintegration-testing

解决方案


我们在我公司所做的是

  1. 我们使用事务来确保数据库在测试后处于与之前相同的状态。
  2. 我们使用测试脚本来确保有效的测试数据(例如,为特定测试场景在某些表中插入一些额外的行,同时更新其他一些)。您可以在 setUp 方法中执行这些脚本,以供多个测试用例重用它们,甚至可以在可由多个测试套件重用的实用程序类中定义它们。

这在许多情况下都可以正常工作,但是,如果您尝试测试应用程序中使用嵌套事务的部分,则可能会出现问题。


推荐阅读