[작업환경]
- Intellij 2020.3
- junit 5
테스트 코드를 작성하는 중 한글이 깨지는 현상이 발생했다.
소스상에는 장그레라는 한글이름으로 넣었는데 Body에는 ì¥ê·¸ë 로 결과가 리턴됐다.
@ExtendWith(SpringExtension.class)
@WebMvcTest(UserController.class)
class UserControllerTest {
@Autowired
private MockMvc mvc;
@Test
public void create() throws Exception {
Header mockUserRequest = Header.builder().data(user).build();
given(userService.create(any())).willReturn(mockUserRequest);
mvc.perform(post("/v1/api/user")
.contentType(MediaType.APPLICATION_JSON)
.content("{\"id\":\"10\", \"email\":\"single@test.com\", \"name\":\"장그레\", \"account\":\"single\", \"password\":\"1111\"}"))
.andExpect(status().isOk())
.andExpect(content().string(containsString("장그레")));
}
}
구글링을 해보는 중 2가지 방법이 있다는 것을 확인했다.
1. @SpringBootTest를 써야하는 경우 [ @WebMvcTest에서도 정상 동작 ]
1.1. 아래의 코드를 보면 WebApplicationContext를 @Autowired로 주입받는다.
1.2. @BeforeEach을 사용해서 테스트 코드가 실행될 때, mvc에 EncodingFilter를 추가? / 변경? 해준다.
@ExtendWith(SpringExtension.class)
@WebMvcTest(UserController.class)
class UserControllerTest {
@Autowired
private MockMvc mvc;
@Autowired
private WebApplicationContext ctx;
@BeforeEach
public void setUp(){
//MockMvc 설정
this.mvc = MockMvcBuilders.webAppContextSetup(ctx)
.addFilters(new CharacterEncodingFilter("UTF-8", true)) // 필터 추가
.alwaysDo(print())
.build();
@Test
public void create() throws Exception {
Header mockUserRequest = Header.builder().data(user).build();
given(userService.create(any())).willReturn(mockUserRequest);
mvc.perform(post("/v1/api/user")
.contentType(MediaType.APPLICATION_JSON)
.content("{\"id\":\"10\", \"email\":\"single@test.com\", \"name\":\"장그레\", \"account\":\"single\", \"password\":\"1111\"}"))
.andExpect(status().isOk())
.andExpect(content().string(containsString("장그레")));
}
}
2. application.yml 파일에 아래의 설정을 추가한다.
server: servlet: encoding: force-response: true |
출처:
'개발 유틸리티 > intellij' 카테고리의 다른 글
[Intellij / 인텔리제이] jacoco를 이용한 테스트 커버리지 확인 (0) | 2021.07.03 |
---|---|
[Intellij / 인텔리제이] 프로젝트 버전 안맞는 현상 ( Execution failed for task ':compileJava'. ) (1) | 2021.07.02 |
[Intellij / 인텔리제이] HttpUrlConnection 한글 깨짐 (0) | 2021.05.18 |
[Intellij / 인텔리제이] 윈도우 실행시 한글 깨짐 (1) | 2021.05.18 |
[Intellij / 인텔리제이] 안쓰는 import 제거 하는 방법 (0) | 2020.09.30 |