如何在 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...
}
}
这是我的测试:
@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...
}
}