MockMvc 한글 깨짐 이슈
이슈
-
mockMvc로 테스트 결과로 나오는 Response의 한글이 깨지는 이슈 발생
해결
- MockMvc를 주입받지 말고 직접 build하여 사용
@Autowired private WebApplicationContext ctx; protected MockMvc mockMvc; @BeforeEach public void mockMvcSetup() { this.mockMvc = MockMvcBuilders.webAppContextSetup(ctx) .addFilters(new CharacterEncodingFilter("UTF-8", true)) // 필터 추가 .alwaysDo(print()) .build(); }
- 설정할것이 많음.
- 시큐리티 관련 설정들이 안된다. (설정 추가가 필요한 것 같다.)
-
Properties 설정
-
위 설정을 해주면 된다고 한다.
-
Deprecated 됨
- 변경된 properties
server.servlet.encoding.charset=UTF-8 server.servlet.encoding.enabled=true server.servlet.encoding.force=true
-
위 설정이 서비스에는 불필요한 설정일 수 있으므로 test에만 적용
- ControllerTest의 공통 부모 Class인 BaseControllerTest에 해당 프로퍼티를 적용하도록 설정
-
성공
-
SpringBootTest 가 아닌경우 해당 설정이 안먹을 수 있다.
그런경우 1번 방법을 적용해보자.
-