@WebMvc 테스트 중 Request Body 데이터가 나오지 않는 상황이 발생.
MockHttpServletRequest:
HTTP Method = POST
Request URI = /api/v1/items
Parameters = {_csrf=[89d3f355-ea84-4108-b910-eebcb6795735]}
Headers = [Content-Type:"application/json", Accept:"application/json", Content-Length:"505"]
Body = <no character encoding set> //
Session Attrs = {}
Handler:
Type = com.prgrms.bdbks.domain.item.api.ItemController
Method = com.prgrms.bdbks.domain.item.api.ItemController#createItem(ItemCreateRequest)
Body = <no character encoding set>
RequestBuilder 속성에 characterEncoding(StandardCharsets.UTF_8)
또는 .characterEncoding("utf-8")
를 추가해주면 된다
mockMvc.perform(post(BASE_REQUEST_URI)
.with(csrf())
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON)
.characterEncoding(StandardCharsets.UTF_8) // here
.content(objectMapper.writeValueAsString(request)
)
).andDo(print())
.andExpect(status().isCreated());
'테스트 > JUnit' 카테고리의 다른 글
Mockito Verify, Mock Object 검증, 호출 횟수 검증 (0) | 2023.01.25 |
---|---|
MockMvc 테스트시 201 created URI를 검증하는 방법 (0) | 2023.01.24 |
JUnit5 생성자 주입 방법과 원리 (0) | 2022.12.16 |
Junit5 의존성 주입 에러@Autowired ParameterResolutionException 과 해결방법 (0) | 2022.12.16 |
Junit5 AssertJ List 정렬 테스트 ( Check if list is sorted in junit) (0) | 2022.12.15 |