개요
Spring Boot의 WebMvcTest를 이용한 단위테스트를 작성하면서 헤매었던 부분들을 기록해보고자 합니다.
내용
1. API요청 방식에 따른 테스트 작성 방법
PathVariable ( 주소에 데이터를 입력 받는 방식 )
- 주로 @GetMapping 에서 사용되는 Path에 요청 값을 받는 방식입니다.
위처럼 PathVariable 방식의 입력이 있을 때에는 RestDocumentationRequestBuilders 를 추가해준뒤 actions을 작성해 주어야 합니다.
RequestParam ( Param을 이용해서 입력을 받는 방식 )
- 적은 수( 1개 ~ 2개 정도? )의 데이터를 받을 때에 주로 사용하고 있는 RequestParam 방식입니다.
이전의 PathVariable 때의 RestDocumentationRequestBuilders 는 필요가 없고 .param("name", "data") 를 추가하는 방식으로 입력을 받을 수 있습니다.
RequestBody ( Body를 이용해서 입력을 받는 방식 )
- 다량의 데이터를 받을 때, 주로 POST 요청을 이용해 데이터를 생성할 때에 사용하는 방식입니다. 저는 dto를 만들어서 입력 값을 정리하여 사용하고 있습니다.
이럴 때에는 Json 형식으로 입력을 받기 때문에 Json 형식의 데이터를 직접 만들어 준뒤 입력값에 할당해 주는 방식을 사용해야 합니다. 저는 JSONObject를 이용하여 Json 형식의 데이터를 만들어 주었습니다. 그리고 입력 데이터 중에 MultipartFile이 존재 하기 때문에 요청 방식은 multipart로 사용하게 되었습니다.
'Study > Spring' 카테고리의 다른 글
[Spring] Spring rest docs generated-snippets adoc 안 생김 문제 (0) | 2022.04.03 |
---|---|
[Spring] @RequiredArgsConstructor 이란? (0) | 2022.03.06 |
[Spring] null check 잊지 않기, 메모는 바로바로 하기 (0) | 2022.01.31 |
[Spring] Spring Boot NoUniqueBeanDefinitionException 문제 (0) | 2022.01.30 |
[Spring] data.sql으로 입력된 데이터 9시간 차이 문제 (1) | 2022.01.28 |