設定特性
無論使用哪個 MockMvc builder,所有 MockMvcBuilder
實現都提供了一些通用且非常有用的特性。例如,您可以為所有請求宣告一個 Accept
header,並期望所有響應的狀態碼為 200 以及包含 Content-Type
header,如下所示
-
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();
// Not possible in Kotlin until {kotlin-issues}/KT-22208 is fixed
此外,第三方框架(和應用程式)可以預打包設定說明,例如 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...
// Not possible in Kotlin until {kotlin-issues}/KT-22208 is fixed
有關所有 MockMvc builder 特性的列表,請參閱 ConfigurableMockMvcBuilder
的 javadoc,或使用 IDE 探索可用選項。