๐ Spring Framework/Spring Project
[์ด์] Pageable test ๊ด๋ จ ์๋ฌ
GroovyArea
2022. 11. 23. 20:45
๐ก๋ฌธ์
API Controller๋ฅผ ํ ์คํธ ํ๋๋ฐ ์ ์ฑ๊ณตํ๋ ํ ์คํธ๊ฐ ๊ณ์ ์คํจํ๋ค.
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalStateException: No primary or single unique constructor found for interface org.springframework.data.domain.Pageable
ํ ์คํธ ์ฝ๋
mockMvc.perform(get("/api/v2/users")
.param("page", String.valueOf(page)))
.andExpect(status().isOk())
.andExpect(content().string(JsonUtil.objectToString(pageOneUsers)))
.andDo(print());
์ฝ๋
/**
* ํ์ ๋ฆฌ์คํธ ์กฐํ
*
* @return ํ์ ๋ฆฌ์คํธ
*/
@GetMapping
public ResponseEntity<List<ListResponseDto>> getAll(@PageableDefault(
page = 1,
sort = "createdAt",
direction = Sort.Direction.DESC) Pageable pageable) {
return ResponseEntity.ok(userService.getAllUsers(pageable));
}
๋ญ๊ฐ ๋ฌธ์ ์ฌ.
๐ ํด๊ฒฐ
mockmvc๋ฅผ ์ฌ์ฉํ ์น ์์ฒญ์์๋ ํ ์คํธ์ ํ์ํ ์ต์ํ์ ํ๊ฒฝ์ ์์ฑํ๊ธฐ ์ํด
๋ณดํต standaloneMockMvcBuilder๋ฅผ ์ด์ฉํด ์ด๊ธฐ ์ค์ ์ ํ๋๋ฐ, ์ฌ๊ธฐ์
.setCustomArgumentResolvers(new PageableHandlerMethodArgumentResolver())
์ด๋ ๊ฒ ํ์ด์ง ์ ๋ณด๋ฅผ ์ถ์ถํ์ฌ Pageable ์ธ์คํด์ค๋ฅผ ์ปจํธ๋กค๋ฌ ๋ฉ์๋์ ์ฃผ์ ํด์ฃผ๋ ์ค์ ์ ์ถ๊ฐ๋ก ํด์ฃผ๋ฉด ํด๊ฒฐ๋๋ค.
๋ฐ์ํ