[칵테일이닭] Test Code 작성시 오류 🔨

Jimin Lim·2022년 2월 8일
0

Test Code

목록 보기
3/4
post-thumbnail

로컬에서 돌렸을때 테스트 코드가 통과하고, CI에서는 통과하지 못하는 이슈가 있었다. 에러로그를 살펴보니 NoSuchElementException이 발생하고 있었다. 말 그대로 해당 객체를 찾지못해서 발생한 오류였다. 그래서 같은 팀의 에러전문가 법식오빠에게 SOS요청을 하였다. (감쟈합니다..🙇🏻‍♀️)

문제가 되었던 코드인데... 이 코드를 보면 데이터의 id를 직접 지정해주면 findById(1L) 요런식으로 가져올 수 있을거라고 생각했었다.
로컬에선 다 돌아가서 푸시를 해보았지만 CI에서 실패를 해서 쿼리문을 보니 내가 지정한 id로 쿼리가 나가지않고 있었다. JPA에서 @GeneratedValue(strategy=GenerationType.IDENTITY)를 지정해줬기에 무시하고 자동으로 생성이 된 것이다.


직접 아이디로 가져오는 방식으로 사용한다면 DB에서 id가 순차적으로 증가하는 방식이므로 어떤 id인지 예상할 수 없다. 처음으로 넣는다해도 테스트할땐 패키지 단위로 진행하기에 예상과 다른 id가 지정이 된다. 따라서 위처럼 findAll로 List로 가져와 get(0)으로 접근하는 방식을 사용하는 것이 안전할 것 같다.

profile
💻 ☕️ 🏝 🍑 🍹 🏊‍♀️

0개의 댓글