che*_*tts 7 java testing spring spring-boot
Spring Boot 1.4补充@WebMvcTest说,连接部件需要测试我的应用程序的Web片段.这太棒了,但我也想确保我的自定义过滤器和安全代码已连线,这样我就可以验证它是否正常工作.
如何在使用时添加自定义过滤器@WebMvcTest?
@AutoConfigureWebMvc目前导入以下自动配置类(见spring.factories的spring-boot-test-autoconfigure罐子):
# AutoConfigureMockMvc auto-configuration imports
org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc=\
org.springframework.boot.test.autoconfigure.web.servlet.MockMvcAutoConfiguration,\
org.springframework.boot.test.autoconfigure.web.servlet.MockMvcSecurityAutoConfiguration,\
org.springframework.boot.test.autoconfigure.web.servlet.MockMvcWebClientAutoConfiguration,\
org.springframework.boot.test.autoconfigure.web.servlet.MockMvcWebDriverAutoConfiguration
Run Code Online (Sandbox Code Playgroud)
超出此列表MockMvcSecurityAutoConfiguration将自动提供与安全筛选器的集成.
如果您需要添加对其他过滤器的支持,您可以自己编写MockMvcBuilderCustomizer(请参阅MockMvcSecurityConfiguration.SecurityMockMvcBuilderCustomizer获取灵感).
您可以使用嵌套@TestConfiguration类将自定义程序挂钩到特定测试中,您可以添加自己的类spring.factories并使用该AutoConfigureMockMvc键自动将其添加到所有测试中.
除了 @Phil Webb 指出的 Spring Boot 选项之外,您还可以使用普通的 Spting 框架功能并执行如下操作:
@Autowired
private WebApplicationContext context;
@Autowired
private FilterChainProxy springSecurityFilter;
@Before
public void setup() {
mockMvc = MockMvcBuilders
.webAppContextSetup(context)
.addFilters(springSecurityFilter)
.apply(SecurityMockMvcConfigurers.springSecurity())
.build();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2750 次 |
| 最近记录: |