设置特性

无论你使用哪种 MockMvc 构建器,所有 MockMvcBuilder 实现都提供了一些通用且非常有用的功能。例如,你可以为所有请求声明一个 Accept 头,并期望所有响应的状态为 200 以及 Content-Type 头,如下所示:

// MockMvcBuilders.standaloneSetup 的静态导入

MockMvc mockMvc = standaloneSetup(new MusicController())
  .defaultRequest(get("/").accept(MediaType.APPLICATION_JSON))
  .alwaysExpect(status().isOk())
  .alwaysExpect(content().contentType("application/json;charset=UTF-8"))
  .build();

此外,第三方框架(和应用程序)可以预先打包设置指令,例如 MockMvcConfigurer 中的指令。TODAY Framework 有一个这样的内置实现,有助于在请求之间保存和重用 HTTP 会话。你可以按如下方式使用它:

// SharedHttpSessionConfigurer.sharedHttpSession 的静态导入

MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new TestController())
		.apply(sharedHttpSession())
		.build();

// 使用 mockMvc 执行请求...

有关所有 MockMvc 构建器功能的列表,请参阅 ConfigurableMockMvcBuilder 的 javadoc,或使用 IDE 探索可用选项。