메모를 생성하는 기능을 테스트하기 위한 코드
status code 201로 기대했지만 415가 반환
@PostMapping("")
public ResponseEntity<MemoResponseDto> createMemo(@RequestBody MemoRequestDto requestDto, @AuthenticationPrincipal UserDetailsImpl userDetails) {
MemoResponseDto result = memoService.createMemo(requestDto, userDetails.getUser());
return ResponseEntity.status(201).body(result);
}
// when - then
mvc.perform(post("/api/memos")
.content(memoInfo)
.contentType(MediaType.APPLICATION_JSON)
.principal(mockPrincipal))
.andExpect(status().isCreated()); // 415 나옴
jakarta.servlet.ServletException: Request processing failed: org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class com.example.springmemoreview.memo.dto.MemoRequestDto]
accept를 contentType으로 바꿔봤더니
이전과는 다른 type definition error가 발생
@Test
@DisplayName("컨트롤러 - 메모 불러오기")
void getMemosTest() throws Exception {
mvc.perform(get("/api/memos")
.accept(MediaType.APPLICATION_JSON)
)
.andExpect(status().isOk());
}
같은 컨트롤러 안에 반환타입이 같은 get 요청의 테스트는 통과하는 것으로 보아 post로 보낸 내용에 문제가 있는 듯 함
좋은 정보 얻어갑니다, 감사합니다.