如何在 Spring 启动测试中指定媒体类型 text/plain;charset=UTF-8

How do I specify a mediatype of text/plain;charset=UTF-8 in a Spring Boot Test

这是我的测试:

 @Test
 fun `test config properties`() {
    mockMvc.request(HttpMethod.GET,"someUrl") {
        accept = MediaType.TEXT_PLAIN
    }.andExpect {
        status { isOk }
        content { contentType(MediaType.TEXT_PLAIN) }
    }
}

它失败了:

Expected :text/plain Actual :text/plain;charset=UTF-8

这是为 MockMVC 使用 Kotlin DSL。

如何更改接受以允许 charset=UTF-8?

有一种工厂方法接受自定义值。尝试:

MediaType.valueOf("text/plain;charset=UTF-8")

如果字符集不是测试的 objective Spring Boot 使用 contentTypeCompatibleWith():

提供更灵活的 content-type 断言

例如,在 Kotlin DSL 中它看起来像这样:

mockMvc.get("/") {
    accept = TEXT_HTML
}.andExpect {
    content {
        contentTypeCompatibleWith(TEXT_HTML)
        // ... more assertions here...
    }
}