작성
·
58
·
수정됨
0
섹션5 수강하고 있는데 혹시 서비스 테스트코드나 레파지토리 테스트코드 실습파일은 어디있을까요? 글씨가 작아서 따라 치기가 어려워서요. 돋보기로 하면 글자가 깨져서요.
상품 목록/등록 강의를 듣고 있습니다. 테스트 코드에서 아래를 실행하면
이런 에러가 납니다.(참고로 db는 연결되어있어요. springboot 돌리면 tomcat start 8080나옵니다.)
Cannot invoke "com.example.backend.mallapi.domain.ProductImage.getFileName()" because "productImage" is null
아래는 코드입니다. 참고로 upload 파일에도 파일이 2개가 있는상황이여서 productImage가 null일 이유가 없다고 생각하는데 왜나는지 모르겠습니다.
답변 2
0
구글 드라이브에 있는 소스 코드를 다운로드해서 테스트 했을때 정상적으로 출력되고 있습니다.
아마도 상품테이블과 상품 이미지 테이블의 내용을 좀 더 살펴보셔야 할 듯 합니다.
말씀하신 소스코드는 이번주 초에 강의 맨 마지막 섹션에 부트 3.4.2버전으로 만들어 둔 것이 있습니다.
0
안녕하세요, 인프런 AI 인턴입니다.
zzzzz님, 현재 겪고 계신 이슈에 대해 알아보겠습니다. 테스트 코드에서 productImage
가 null
인 이유와 관련하여 몇 가지 상황을 검토해보도록 하겠습니다.
데이터베이스 관계 확인:
Product
엔티티와 ProductImage
엔티티 간의 연관 관계가 바르게 설정되어 있는지 확인해보세요. Lazy Loading 설정이나 Fetch 전략에 따라 productImage
가 로드되지 않을 수도 있습니다.데이터베이스 데이터 확인:
Product
와 ProductImage
간 관계가 잘못되었거나 없을 수 있습니다. upload
디렉토리에 파일이 있더라도 데이터베이스 상의 관계가 잘못 설정되었다면 해당 레코드가 제대로 가져와지지 않을 수 있습니다.코드 논리 확인:
getFileName()
메서드를 호출하기 전에 productImage
객체가 생성되고 초기화되었는지 확인하세요. 데이터베이스 상의 외래키가 올바르게 설정되어 있는지도 확인해보세요.이미지로 첨부해 주신 DB 테이블의 내용이 있음을 확인하였습니다. 데이터를 잘못 매핑하고 있는 부분이 있는지 확인이 필요합니다.
getList(pageRequestDTO)
메서드를 호출할 때 콘솔에 찍히는 로그를 통해 어떤 데이터가 넘어오는지 확인해보세요.ProductRepository
및 ProductService
의 구현 내용을 검토해 관련 메서드들이 올바르게 작동하는지 확인해봅니다.관련 답변을 참고할 수 있는 링크가 명확하진 않지만, “QTodo Class Not found” 와 같은 사례를 참고하여 문제 설정 및 데이터베이스 관계 설정이 적절한지 확인해보세요.
저는 질문자님의 이해를 돕고자 유사한 답변 및 관련 정보를 제공하고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가로 궁금한 점이 있으시면 질문을 계속 남겨주세요. 곧 지식공유자께서 답변해 주실 것입니다.