본문 바로가기
  • 개발하는 곰돌이

mockmvc3

[Spring/Spring Boot] 파일 다운로드와 multipart/form-data 업로드 컨트롤러 메소드 테스트 코드를 작성해보자 목차들어가기 전에최근에 파일을 다운로드 받는 컨트롤러 메소드와 파일을 업로드해서 처리하는 컨트롤러 메소드를 작성하면서 해당 컨트롤러 메소드가 제대로 돌아가는지 확인하려고 테스트 코드를 작성할 일이 있었습니다. 평소에 작성하는 테스트 코드는 평범한 요청과 응답을 가지는 로직에 대한 테스트 코드 뿐이었다 보니 파일 업로드/다운로드와 관련된 테스트 코드를 작성한다는게 상당히 생소했는데 나중에 까먹지 않으려고 기록해두려고 합니다. 본문상의 코드는 모두 코틀린으로 작성되어 있긴 하지만 가장 중요한 파일 업로드나 다운로드 검증 부분은 자바도 별반 다르지 않습니다.파일 업로드 테스트일반적으로 파일을 업로드하는 로직은 MultipartFile을 사용하는 경우가 많습니다. 이를 테스트하기 위해 스프링에서는 Multipa.. 2024. 8. 14.
[Spring] Spring REST Docs를 사용해서 API 명세서를 작성해보자 들어가기 전에기존에 진행했던 프로젝트들의 API 명세서를 작성할 때는 어노테이션만으로 API 요청 및 응답 정보를 생성할 수 있고, Postman 등의 툴 없이 API를 실행할 수 있다는 장점이 있어서 OpenApi에서 제공하는 Swagger-UI를 사용하고 있었습니다. 하지만 스웨거의 경우 어노테이션을 통해 API 문서를 생성하다보니 API가 변경되었을 때 어노테이션의 내용도 수정하지 않으면 실제 API 사양과 스웨거 문서 상의 API 사양이 일치하지 않는 문제가 있어 API 문서를 완전히 자동으로 생성할 수는 방법이 필요했습니다. 그렇게 자동으로 API 문서를 생성하는 방법에 대해 찾아보던 중 스프링에서 제공하는 Spring REST Docs라는 도구가 있다는 사실을 알게되어 해당 방법을 도입해보기로.. 2024. 7. 8.
[MockMvc] MockMvc 테스트 시 한글이 깨져서 테스트에 실패하는 문제 목차문제의 상황Spring REST Docs를 공부해보기 위해 이전에 작성했던 코드의 컨트롤러 테스트 코드를 MockMvc를 사용해서 작성하고 있었다.@SpringBootTest@AutoConfigureMockMvc@AutoConfigureRestDocsclass AdminControllerTest @Autowired constructor( private val tokenProvider: TokenProvider, private val memberRepository: MemberRepository, private val mockMvc: MockMvc, private val objectMapper: ObjectMapper = ObjectMapper()) { @Test fun.. 2024. 6. 19.