我有以下工作示例
val headers = HttpHeaders()
headers.add("Content-Type", "application/merge-patch+json")
mockMvc.perform(
patch(path)
.headers(headers)
.content(objectMapper.writeValueAsString(patchRequest)),
).andExpect(status().isOk)
.andReturn()
我想使用 kotlin DSL 重写它
val result = mockMvc.patch(path) {
//this.header = headers
content = objectMapper.writeValueAsString(patchRequest)
}.andExpect{ status { isOk() } }
.andReturn()
我不知道如何传递自定义标头。有办法做到吗?
特别是对于这种方法有效的问题中的情况:
val result = mockMvc.patch(path) {
contentType = MediaType.valueOf("application/merge-patch+json")
content = objectMapper.writeValueAsString(patchRequest)
}.andExpect{ status { isOk() } }
.andReturn()
对于那些像我一样偶然发现这一点的人,通过 kotlin mockMvc DSL 添加自定义标头的方法是直接在标头块内使用 HttpHeaders.add 方法,如下所示:
mockMvc.post("/your-cool-api/path") {
headers {
add("x-my-header", "foo")
add("some-other-header", "bar")
}
}.andExpect {
status { isOk() }
}