在运行集成测试时,如何保持数据库的整洁?

2025-05-30 23:30:37

1、Spring集成测试功能对于处理数据库和事务有一个非常有用的特性。如果您有一个扩展的JUnit测试套件AbstractTransactionalJU荏鱿胫协nit4SpringContextTests,然后在此套件中运行的每个测试都将在数据库事务中运行,并在每个测试结束时回滚。

在运行集成测试时,如何保持数据库的整洁?

2、这可以检查代码是否满足数据库指定的任何需求,比如引用完整性,或者复杂的连锁反应,比如数据库触发器中指定的连锁反应。

在运行集成测试时,如何保持数据库的整洁?

3、先看spring的application.xml配置文件信息:

在运行集成测试时,如何保持数据库的整洁?

4、下图显示了一个将数据插入数据库的测试。如果要插入的任何用户名的先决条件已经在数据库中,则测试将失败。

在运行集成测试时,如何保持数据库的整洁?

5、在运行任何@Before方法之前,都会打开一个事务。一旦运行了测试,并且所有@After方法都完成了,事务就会回滚,就好像数据从来没有存在过一样。当然,您需要确保@Test方法中的任何代码都没有执行提交。

6、如果这个测试在事务之外运行,由于插入了用户名Alice、Bob和Charlie,它在第二次运行时会失败。但是因为插入是回滚的,所以可以一次又一次地运行它,而不需要担心数据的持久性。这使得它适合作为常规应用程序构建的一部分运行,或者作为在连续交付服务器上运行的一组集成测试的一部分运行。

在运行集成测试时,如何保持数据库的整洁?

7、JUnit 4.11引入了@FixMethodOrder注释,它允许您定义运行@Test方法的顺序。在清单16-18中,您可以编写另一个测试,再次检查事务是否确实已回滚,并且用户是否不存在于表中,并在runInTransaction测试之后运行该测试。

在运行集成测试时,如何保持数据库的整洁?

8、指定测试的顺序是不好的实践,因为您应该能够独立地运行每个测试。如果这个测试是在一个连续交付服务器上运行的,并且事务回滚有问题,那么这个测试将在第二次运行时失败,如果您有一个常规运行的构建,那么这将是在开发周期的早期。

9、通过扩展AbstractTransactionalJUnit4SpringContextTests,并提供一个带有有效数据源的刂茗岚羟应用程序上下文,集成测试套件允许您访问SimpleJdbcTemplate对象,您可以使用该对象为您的测试执行任何相关的数据库操作。测试套件还提供了两个实用方法:countRowsInTable和deleteFromTables。

在运行集成测试时,如何保持数据库的整洁?
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢