이것저것
Caused by: java.lang.IllegalStateException: No primary or single unique constructor found for interface org.springframework.data.domain.Pageable 에러 해결
감자b
2025. 2. 1. 19:02
컨트롤러에 대한 단위 테스트를 진행하는데 위 에러가 발생하였다.
Spring Rest Docs 생성을 위한 테스트 환경에서 MockMvc를 standaloneSetup으로 설정하여 스프링 컨테이너 없이 최소한의 설정으로 진행되도록 하였는데, 여기서 컨트롤러의 Pageable 파라미터를 처리할 수 없기 때문에 발생하는 오류이다.
this.mvc = MockMvcBuilders.standaloneSetup(initController())
.apply(documentationConfiguration(provider))
.build();
따라서 요청 파라미터를 가지고 PageRequest 객체를 생성시켜주는 PageableHandlerMethodArgumentResolver 설정을 추가시켜주어야 한다.
PageableHandlerMethodArgumentResolver pageableResolver = new PageableHandlerMethodArgumentResolver();
this.mvc = MockMvcBuilders.standaloneSetup(initController())
.setCustomArgumentResolvers(pageableResolver)
.apply(documentationConfiguration(provider))
.build();