Algorithm Study

주문 기능 테스트 (OrderServiceTest)

hyun-1200 2022. 6. 15. 11:19

 

 

테스트 코드 작성할때는 3개 에노테이션을 작성해준다.

스프링 부트 환경에서 실행한다는 의미이며,

transactional은 데이터 저장후 롤백한다는 의미이다. 

 

 


1.  상품 주문 테스트

 

- 상품을 주문하면 상품상태가 ORDER이 되는지 확인

- 주문한 상품의 수가 1개가 맞는지 확인

- 주문 가격 로직이 맞는지 확인

- 주문 수량만큼 재고가 줄어드는지 확인.

 


 

2. 상품주문 재고수량 초과 테스트

 

-  현 재고가 10개이지만, 주문을 20개 했을때, NotEnoughStockException 예외가 발생할것을 예상한다. 

    @Test (expected = NotEnoughStockException.class)

 

- Member 객체와 Item 객체 생성하는 것을 반복하는 작업이 있어,

해당 객체들을 생성하는 코드를 따로 메서드로 빼냈다. (command+option+ M) 

 


3. 상품 취소 테스트 

주문을 하고, orderService.cancelOrder 을 사용해서 주문을 취소한다.

  • 주문을 취소하면 다시 재고가 증가하는지 확인
  • 주문 취소하면 OrderStatus가 CANCEL이 되는지 확인