我正在尝试使用Spring MVC Test Framework.
测试一种安全的REST方法 val result = this.mockMvc!!
.perform(get("/ping").with(SecurityMockMvcRequestPostProcessors.user("user")))
.andDo(MockMvcResultHandlers.print())
.andReturn()
assertThat(result.response.contentAsString).contains("pong")
问题在于,在此请求上,模拟服务器正在响应302代码,以重定向到安全通道。结果永远不会是2xx
代码,永远是302
代码。我想遵循此重定向,或者第一次在安全通道上执行请求。
如何执行此测试以直接在模拟的安全通道上进行?
答案 0 :(得分:1)
最后,我找到了解决方案。我需要在模拟的secure(true)
上调用get("/")
。令我惊讶的是,它不在文档中,而仅在javadocs中:
val result = this.mockMvc!!
.perform(get("/ping").secure(true).with(SecurityMockMvcRequestPostProcessors.user("user")))
.andDo(MockMvcResultHandlers.print())
.andReturn()
assertThat(result.response.contentAsString).contains("pong")