如何从自定义启动器中获取 @WebMvcTest pickup WebMvcConfigurer 类?

How do I make @WebMvcTest pickup WebMvcConfigurer classes from custom starters?

我正在构建一个自定义入门库,它在 WebMvcConfigurer class 中注册了一个 ObjectMapper。此 ObjectMapper 的设置之一是即时序列化格式。

当我将@SpringBootTest 与@AutoConfigureMockMvc 一起使用时,配置的ObjectMapper 被拾取,并且一切都按预期工作。但是,使用 @WebMvcTest 的相同断言失败了。似乎 WebMvcConfigurer class 没有在 @WebMvcTest 自动配置中被拾取,尽管 docs 声明它应该被拾取。

有没有一种方法可以扩展 WebMvcTest 的自动配置,而不必诉诸于将 @Import 与每个 @WebMvcTest 注释放在一起?

code example

与您在主自动配置中包含启动器配置所做的类似,您可以通过向 spring.factories 添加条目在特定测试切片中包含配置 class。在这种情况下,您应该使用键 org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureWebMvc.

如果您查看 Spring Boot source code,您会发现 Boot 的 Jackson 自动配置就是这样包含的,例如。