테스트 코드를 작성하고 실행했는데, 위와 같이 에러 발생
해당 테스트 코드는 url로 부터 id를 읽어와서 특정 게시글을 조회하는 테스트 코드이다
바로 구글링하니 나와 같은 문제 오천 오백만개.
문제 원인 Controller 코드
-parameters
옵션을 넣어주어야 애노테이션의 이름을 생략할 수 있다.이 문제는 Build, Execution, Deployment -> Build Tools -> Gradle에서
Build and run using를 IntelliJ IDEA로 선택한 경우에만 발생Gradle로 선택한 경우, Gradle이 컴파일 시점에 해당 옵션을 자동으로 적용함.
자바를 컴파일할 때 매개변수 이름을 읽을 수 있도록 남겨두어야 사용할 수 있음
컴파일 시점에 -parameters 옵션을 사용하면 매개변수 이름을 사용할 수 있게 남겨둔다.스프링 부트 3.2 전까지는 바이트코드를 파싱해서 매개변수 이름을 추론하려고 시도했지만, 스프링 부트 3.2 부터는 이런 시도를 하지 않음!
애노테이션에 이름을 생략하지 않고, 항상 적어준다.
@RequestParam("username") String username
@PathVariable("userId") String userId
IntelliJ IDEA에서 File -> Settings를 연다.
Build, Execution, Deployment → Compiler → Java Compiler로 이동
Additional command line parameters라는 항목에 -parameters
추가.
out 폴더를 삭제하고 다시 실행한다. out 폴더를 삭제해야 다시 컴파일이 일어난다.