작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
808
0
@ResponseBody
@GetMapping("/test/{id}")
public void test(@PathVariable Long id) {
...
}
Test Code
@Test
public void 테스트_코드() throws Exception {
Long id = 1L;
mvc.perform(get("/test/" + id))
.andExpect(status().isOk());
}
Error
org.springframework.web.util.NestedServletException: Request processing failed; java.lang.IllegalArgumentException: Name for argument type [java.lang.Long] not available, and parameter name information not found in class file either.
제가 조사한 바로는 아래와 같은데 (Spring 공식 문서 일부)
The matching of method parameter names to URI Template variable names can only be done if your code is compiled with debugging enabled. If you do have not debugging enabled, you must specify the name of the URI Template variable name to bind to in the @PathVariable annotation.
debugging enabled한 compile이라는걸 이해할 수 없어 질문 납겨봅니다ㅠ.ㅠ
답변 남겨주시면 감사합니다.
답변 1
1
안녕하세요. yeonLog님, 공식 서포터즈 David입니다.
.
동일하게 오류 재현이 안 되어 확인할 수 없어 관련 오류를 경험하신 분이 쓴 글을 첨부합니다.
https://m.blog.naver.com/sm_woo/70185755273
.
감사합니다.
제가 겪는 오류랑 비슷한 상황인 것 같습니다
다만 postman이나 크롬에서 직접 접근하면 응답이 되는데 JUnit 테스트만 안됩니다.
JUnit 설정을 의심해야 하는건지.. 아니면 IntelliJ 환경 설정을 의심해야 하는건지 모르겠습니다