Skip to content

MockMvc print() 한글 깨짐

hyeonic edited this page Aug 9, 2021 · 1 revision

Spring boot 2.2.0 버전 이후부터 MediaType.APPLICATION.JSON_UTF8 이 Deprecated 되었다.

https://blog.kakaocdn.net/dn/cKRFZC/btrbtz6Gll0/38wMLavXhSdx1NheCWt0QK/img.png

기본적으로 mvcMock 사용시 기본적으로 UTF-8 설정이 되어 있기 때문에 특별한 설정없이 정상적으로 작동한다. 문제는 다른 곳에서 발생하였다. .andDo(print())를 하게 되면 한글이 깨지는 것을 확인할 수 있다.

https://blog.kakaocdn.net/dn/qZvON/btrbwicLaz1/M89kW2iYprAYaDiFXxlIA1/img.png

테스트 시작 전 필터를 추가하여 UTF-8로 고정하였다.

MockMvc mockMvc;

@BeforeEach
void setUp(WebApplicationContext webApplicationContext) {
    this.mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext)
            .addFilters(new CharacterEncodingFilter("UTF-8", true))// 필터 추가
            .build();
}

https://blog.kakaocdn.net/dn/b1z1WN/btrbJI8ehl9/zKHFnwUyD60wpWQTKUeJC0/img.png