使用spring-test-mvc自定义测试http标头

Avi*_*Avi 11 java spring spring-mvc spring-test-mvc

我正在测试我的MVC服务,spring-test-mvc我使用了类似的东西:

MockMvc mockMvc = standaloneSetup(controller).build();
mockMvc.perform(get("<my-url>")).andExpect(content().bytes(expectedBytes)).andExpect(content().type("image/png"))
       .andExpect(header().string("cache-control", "max-age=3600"));
Run Code Online (Sandbox Code Playgroud)

哪个工作正常.

现在我将缓存图像更改为在特定范围内随机.例如,而不是36003500-3700.我试图找出如何获取标头值并对其进行一些测试而不是使用此模式andExpect.

Adm*_*mit 17

也许你的意思是这样的.

    MvcResult mvcResult = mvc.perform(get("/")).andReturn();
    String headerValue = mvcResult.getResponse().getHeader("headerName");
Run Code Online (Sandbox Code Playgroud)


Val*_*ane 11

最好的方法是MockMvcResultMatchers.header()弹簧测试

mockMvc.perform(MockMvcRequestBuilders.get("/api"))
.andExpect(MockMvcResultMatchers.header()
.stringValues("count", "150"));
Run Code Online (Sandbox Code Playgroud)