首页 > 解决方案 > Spring Boot Test 如何跨多个测试套件保持上下文?

问题描述

我正在阅读使用 Spring Boot Test 的指南,其中有一段让我感到困惑。

“随着我们的配置文件越来越丰富,在我们的集成测试中时不时地进行交换是很诱人的。有一些方便的工具可以做到这一点,比如@ActiveProfiles。但是,每次我们使用新配置文件提取测试时,都会创建一个新的 ApplicationContext。” https://www.baeldung.com/spring-tests

所以它假设如果所有测试都在同一个配置文件下运行,那么只会创建一个 ApplicationContext ——但这怎么可能呢?我认为无论如何都会为每个测试套件重新创建所有对象。我错过了什么吗?

官方参考说它是缓存的。

https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/testing.html#testing-ctx-management

但是它是如何跨多个测试套件加载到 JUnit runner 或 Spock one 中的呢?

标签: springspring-boot

解决方案


在我的理解中缺少的是所有测试套件都作为单个程序的一部分运行的事实,因此很容易缓存所有测试套件所需的任何对象,包括 Spring 上下文。


推荐阅读