MockMvc。如何使用 kotlin DSL 传递自定义请求标头?

问题描述 投票:0回答:2

我有以下工作示例

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()

我不知道如何传递自定义标头。有办法做到吗?

spring-boot kotlin spring-mvc spring-boot-test mockmvc
2个回答
0
投票

特别是对于这种方法有效的问题中的情况:

val result = mockMvc.patch(path) {
     contentType = MediaType.valueOf("application/merge-patch+json")
     content = objectMapper.writeValueAsString(patchRequest)
 }.andExpect{ status { isOk() } }
     .andReturn()

0
投票

对于那些像我一样偶然发现这一点的人,通过 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() }
}
© www.soinside.com 2019 - 2024. All rights reserved.