Problem Solving
[PS][SpringBoot] 테스트 코드의 404 - 경로 문제
Namani
2023. 9. 13. 02:52
해결 방법
- SpringBoot를 실행시키는 main 메소드 + 테스트로 만들어둔 클래스의 경로 확인하기
- 둘 다 같은 패키지에 있어야 404 에러 뜨지 않음
문제 해결 흐름
`스프링 부트와 AWS로 혼자 구현하는 웹 서비스` 책을 보며 테스트 코드를 작성하고 있었다.
테스트 메소드를 실행시키면 테스트 통과, 즉 200 이 뜰거라고 했는데 자꾸 404가 떴다.
저자의 깃허브 이슈탭을 보니 `build.gradle` 에서 security 문제이다, get()에서 hello 가 아닌 /hello 를 써야 한다 등 여러가지 답이 많았지만 나와 해당이 되지 않았고, 다시 구글창에 검색을 해보았다.
이리저리 찾던 중 https://codu.tistory.com/25 의 글을 보게 되었고 해당 글에서 문제를 발견하게 되었다.
SpringBoot를 실행시키는 main 메소드 + 테스트로 만들어둔 클래스의 경로가 달라서 그렇다는 것!
다시 내 프로젝트를 확인해봤다.
즉, SoloSpringApplication의 현재 경로는 `com.namani.book.solospring`에 있다는 거고,
테스트 클래스의 경로는 `com.namani.book.solospring.web`에 있다는 뜻이다.
java 디렉토리에 있는 HelloController는 com.namani.book.solospring.web에 잘 있었지만, 메인 메소드가 담긴 클래스는 다른 곳에 있었던 셈..ㅎㅎ
그래서 아래처럼 수정하였다.
그랬더니 테스트 통과!
기본적인거지만 첫 테스트 코드를 써보는거라서 몰랐다.. 이제 알았으면 된거니까 괜찮다!