2.2.0.RELEASE
Spring Boot'un yeni sürümüne geçtikten sonra bazı testlerim başarısız oldu. Görünüşe göre, MediaType.APPLICATION_JSON_UTF8
artık içerik türünü açıkça belirtmeyen denetleyici yöntemlerinden varsayılan içerik türü olarak döndürülmez.
Test kodu
String content = mockMvc.perform(get("/some-api")
.contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
.andReturn()
.getResponse()
.getContentAsString();
içerik türü aşağıda gösterildiği gibi uyuşmadığından aniden çalışmadı
java.lang.AssertionError: Content type
Expected :application/json;charset=UTF-8
Actual :application/json
Kodun değiştirilmesi .andExpect(content().contentType(MediaType.APPLICATION_JSON))
sorunu şimdilik çözdü.
Ancak şimdi content
beklenen serileştirilmiş nesneyle karşılaştırıldığında , nesnede özel karakterler varsa hala bir uyumsuzluk var. .getContentAsString()
Yöntemin varsayılan olarak UTF-8 karakter kodlamasını kullanmadığı anlaşılıyor (artık).
java.lang.AssertionError: Response content expected:<[{"description":"Er hörte leise Schritte hinter sich."}]> but was:<[{"description":"Er hörte leise Schritte hinter sich."}]>
Expected :[{"description":"Er hörte leise Schritte hinter sich."}]
Actual :[{"description":"Er hörte leise Schritte hinter sich."}]
content
UTF-8 kodlamasına nasıl girebilirim ?