对于最新稳定版本,请使用 Spring Framework 7.0.6spring-doc.cadn.net.cn

设置特性

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

// static import of 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();
// Not possible in Kotlin until https://youtrack.jetbrains.com/issue/KT-22208 is fixed

此外,第三方框架(及应用程序)可以预先打包配置说明,例如以 MockMvcConfigurer 的形式提供。Spring 框架内置了一个此类实现,用于在多个请求之间保存并重用 HTTP 会话。您可以按如下方式使用它:spring-doc.cadn.net.cn

// static import of SharedHttpSessionConfigurer.sharedHttpSession

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

// Use mockMvc to perform requests...
// Not possible in Kotlin until https://youtrack.jetbrains.com/issue/KT-22208 is fixed

查看 ConfigurableMockMvcBuilder 的 Javadoc,以获取所有 MockMvc 构建器功能的列表,或使用 IDE 探索可用选项。spring-doc.cadn.net.cn