Spring/Rest Docs

Rest Docs) 컨트롤러 테스트에서 페이징 테스트는 어떻게 할 수 있을까?

초보병일이 2023. 7. 2. 13:21
728x90

Page<> 안에 있는 값을 먼저 살펴보자.

Postman으로 조회했을 때 볼 수 있는 값이다.

이러한 형태는 어떻게 Rest Docs를 이용해서 나타낼 수 있을까? 엄청난 시간을 썼다.

저 모든 값을 다 필드로 나타내야 되는 건가?

content 안에 있는 값에 접근해야 되는 건가? 어떻게 $.??.??

이런 식으로 어떻게 접근해야 될까 시도를 엄청 많이했다.

 

@RequestParam 값을 어떻게 처리해야 될까

전체 조회(페이징) 컨트롤러

먼저 내가 작성한 controller를 살펴보자.

@GetMapping("/items")
public Page<ItemListResponseDto> readItemList(@RequestParam(value = "page", defaultValue = "0") Integer page,
                                              @RequestParam(value = "limit", defaultValue = "20") Integer limit) {

    Page<ItemListResponseDto> itemListResponseDto = itemService.readItemList(page, limit);

    return itemListResponseDto;
}

 

 

Rest Docs에서 parameters를 어떻게 나타내야 될까

Rest Docs 3.0 이상 부터 파라미터 적용 방법이 바뀜

https://byungil.tistory.com/290#%C2%A0-1

 

Spring Rest Docs 3.0.0) requestParameters 사용법

https://docs.spring.io/spring-restdocs/docs/3.0.0-SNAPSHOT/reference/htmlsingle/#documenting-your-api-query-parameters Spring REST Docs Document RESTful services by combining hand-written documentation with auto-generated snippets produced with Spring MVC

byungil.tistory.com

체크한 부분을 잘 살펴보자.

pathParameters() 이 메서드랑은 다르다.

pathParameters는 {id} < 여기있는 값을 사용하는 것이다.

 

 

responseField값을 어떻게 작성해야 될까

Rest Docs는 페이징 처리된 모든 필드를 적어줘야 함.

(RestDocs에서 데이터 배열은 []로 표현한다.)

 

 

index.adoc 응답 결과

728x90