Problem Solving

[PS][SpringBoot] 테스트 코드의 404 - 경로 문제

Namani 2023. 9. 13. 02:52

해결 방법

  1. SpringBoot를 실행시키는 main 메소드 + 테스트로 만들어둔 클래스의 경로 확인하기
  2. 둘 다 같은 패키지에 있어야 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에 잘 있었지만, 메인 메소드가 담긴 클래스는 다른 곳에 있었던 셈..ㅎㅎ

 

그래서 아래처럼 수정하였다.

수정 후

그랬더니 테스트 통과!

기본적인거지만 첫 테스트 코드를 써보는거라서 몰랐다.. 이제 알았으면 된거니까 괜찮다!

 

뿌듯해지는 테스트 통과


참고

1. https://codu.tistory.com/25