设置功能

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

  • Java

  • Kotlin

// 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();
// 在修复{ kotlin-issues }/KT-22208之前,Kotlin中不可能

此外,第三方框架(和应用程序)可以预打包设置说明,例如在MockMvcConfigurer中的设置。Spring Framework有一个内置的实现,可以帮助保存和重复使用跨请求的HTTP会话。您可以按以下方式使用它:

  • Java

  • Kotlin

// SharedHttpSessionConfigurer.sharedHttpSession的静态导入

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

// 使用mockMvc执行请求...
// 在修复{ kotlin-issues }/KT-22208之前,Kotlin中不可能

查看ConfigurableMockMvcBuilder的javadoc,了解所有MockMvc构建器功能列表,或使用IDE探索可用选项。