企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 40.3 测试Spring Boot应用 ### 40.3 测试Spring Boot应用 Spring Boot应用只是一个Spring `ApplicationContext`,所以在测试时对它只需要像处理普通Spring context那样即可。唯一需要注意的是,如果你使用`SpringApplication`创建上下文,外部配置,日志和Spring Boot的其他特性只会在默认的上下文中起作用。 Spring Boot提供一个`@SpringApplicationConfiguration`注解用于替换标准的`spring-test``@ContextConfiguration`注解,该组件工作方式是通过`SpringApplication`创建用于测试的`ApplicationContext`。 你可以使用`@SpringBootTest`的`webEnvironment`属性定义怎么运行测试: - `MOCK` - 加载`WebApplicationContext`,并提供一个mock servlet环境,使用该注解时内嵌servlet容器将不会启动。如果classpath下不存在servlet APIs,该模式将创建一个常规的non-web `ApplicationContext`。 - `RANDOM_PORT` - 加载`EmbeddedWebApplicationContext`,并提供一个真实的servlet环境。使用该模式内嵌容器将启动,并监听在一个随机端口。 - `DEFINED_PORT` - 加载`EmbeddedWebApplicationContext`,并提供一个真实的servlet环境。使用该模式内嵌容器将启动,并监听一个定义好的端口(比如`application.properties`中定义的或默认的`8080`端口)。 - `NONE` - 使用`SpringApplication`加载一个`ApplicationContext`,但不提供任何servlet环境(不管是mock还是其他)。 **注** 不要忘记在测试用例上添加`@RunWith(SpringRunner.class)`,否则该注解将被忽略。