인프런 커뮤니티 질문&답변

공공수달님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

재고수량 초과 주문 테스트 시 에러 발생 + 주문 취소 테스트 시 에러 발생

작성

·

366

0

1. 재고수량 초과주문 테스트 에러 

java.lang.Exception: Unexpected exception, expected<jpabook.jpashop.exception.NotEnoughStockException> but was<org.springframework.dao.InvalidDataAccessApiUsageException>

 

NotEnouthStockException이 실행되지 않고 다른 Exception이 실행되는 거 같은데 구글링을 해봐도 답이 안 나와서 질문 드립니다ㅠㅠ

2. 주문 취소 테스트시 에러

org.springframework.dao.InvalidDataAccessApiUsageException: id to load is required for loading; nested exception is java.lang.IllegalArgumentException: id to load is required for loading

주문 쪽에서 뭔가 꼬인 거 같은데 잘 못 찾겠네요ㅠㅠㅠ

답변 4

1

벌써 1년 전이라 이미 다른 레벨로 가셨겠지만..혹시라도 다른분이 보신다면.. 저도 동일한 증상으로

고생을 해가지구 공유합니당

private Book createBook(String name, int price, int stockQuantity) {
    Book book = new Book();
    book.setName(name);
    book.setPrice(price);
    book.setStockQuantity(stockQuantity);
    em.persist(book);   //이거를 생략함 ㅜㅜ
    return book;
}

저는 OrderServiceTest 에서 createBook메서드에서 return하기전에

em.persist(book) 이 코드를 빼먹었었네요

 

이게 코드 한줄인데 진짜 찾기 힘드네요.. 아직 JPA에 대한 개념이 부족한 탓이기도 한 듯 합니다 ㅎㅎ

아무튼 다른분이 혹시 보신다면 도움이 되시길..

0

김영한님의 프로필 이미지
김영한
지식공유자

ㅎㅎ 네 2번 문제를 해결하고 잘 안되면 다시 남겨주세요. 1번, 2번에서 같은 예외가 발생하는 것을 보니 같은 문제일 수 있습니다^^

0

공공수달님의 프로필 이미지
공공수달
질문자

네, 빠른 답변 감사합니다!

2번 문제에 대한 해결은 제가 한번 찾아볼 수 있을 것 같으나, java.lang.Exception: Unexpected exception, expected<jpabook.jpashop.exception.NotEnoughStockException> but was<org.springframework.dao.InvalidDataAccessApiUsageException> 해당 에러는 어떻게 해야할 지 잘 모르겠네요ㅠㅠ

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. rt.slowth님

오류 메시지를 보니까, 

id to load is required for loading

id에 값이 넘어가지 않은 부분이 있는 것 같아요.

이 부분을 한번 찾아주세요^^

감사합니다.