আমি 2.2.0.RELEASE
স্প্রিং বুটের সদ্য প্রকাশিত সংস্করণে আপগ্রেড করার পরে আমার কয়েকটি পরীক্ষায় ব্যর্থ হয়েছিল। এটি প্রদর্শিত হয় যে MediaType.APPLICATION_JSON_UTF8
প্রত্যাখ্যান করা হয়েছে এবং কন্ট্রোলার পদ্ধতিগুলি থেকে স্পষ্টভাবে সামগ্রীর প্রকারটি নির্দিষ্ট করে না এমনগুলি থেকে আর ডিফল্ট সামগ্রীর ধরণ হিসাবে ফিরে আসে না।
পরীক্ষার কোডটি পছন্দ করুন
String content = mockMvc.perform(get("/some-api")
.contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
.andReturn()
.getResponse()
.getContentAsString();
নীচের চিত্রের মতো বিষয়বস্তুর ধরণটি মেলে না বলে হঠাৎ করে আর কাজ করতে পারেনি
java.lang.AssertionError: Content type
Expected :application/json;charset=UTF-8
Actual :application/json
.andExpect(content().contentType(MediaType.APPLICATION_JSON))
আপাতত সমস্যা সমাধানের জন্য কোড পরিবর্তন করা ।
তবে এখন যখন content
প্রত্যাশিত সিরিয়ালযুক্ত বস্তুর সাথে তুলনা করা অবজেক্টটিতে কোনও বিশেষ অক্ষর রয়েছে তবে এখনও একটি মিল নেই। এটি প্রদর্শিত হয় যে .getContentAsString()
পদ্ধতিটি ইউটিএফ -8 অক্ষর এনকোডিংটি ডিফল্টরূপে ব্যবহার করে না (আর কোনও)।
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
ইউটিএফ -8 এনকোডিংয়ে যাব ?