設定功能
無論您使用哪種 MockMvc 構建器,所有 MockMvcBuilder 實現都提供了一些常用且非常有用的功能。例如,您可以為所有請求宣告一個 Accept 頭,並期望所有響應的狀態為 200 以及一個 Content-Type 頭,如下所示:
-
Java
-
Kotlin
// 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();
// static import of MockMvcBuilders.standaloneSetup
val mockMvc = standaloneSetup(MusicController())
.defaultRequest<StandaloneMockMvcBuilder>(get("/").accept(MediaType.APPLICATION_JSON))
.alwaysExpect<StandaloneMockMvcBuilder>(status().isOk())
.alwaysExpect<StandaloneMockMvcBuilder>(content().contentType("application/json;charset=UTF-8"))
.build()
此外,第三方框架(和應用程式)可以預打包設定指令,例如 MockMvcConfigurer 中的指令。Spring Framework 內建了這樣一個實現,有助於在請求之間儲存和重用 HTTP 會話。您可以按如下方式使用它:
-
Java
-
Kotlin
// static import of SharedHttpSessionConfigurer.sharedHttpSession
MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new TestController())
.apply(sharedHttpSession())
.build();
// Use mockMvc to perform requests...
// static import of SharedHttpSessionConfigurer.sharedHttpSession
val mockMvc = MockMvcBuilders.standaloneSetup(TestController())
.apply<StandaloneMockMvcBuilder>(sharedHttpSession())
.build()
// Use mockMvc to perform requests...
有關所有 MockMvc 構建器功能的列表,請參閱 ConfigurableMockMvcBuilder 的 Javadoc,或使用 IDE 探索可用選項。