테스트 코드 작성할때는 3개 에노테이션을 작성해준다.
스프링 부트 환경에서 실행한다는 의미이며,
transactional은 데이터 저장후 롤백한다는 의미이다.
1. 상품 주문 테스트
- 상품을 주문하면 상품상태가 ORDER이 되는지 확인
- 주문한 상품의 수가 1개가 맞는지 확인
- 주문 가격 로직이 맞는지 확인
- 주문 수량만큼 재고가 줄어드는지 확인.
2. 상품주문 재고수량 초과 테스트
- 현 재고가 10개이지만, 주문을 20개 했을때, NotEnoughStockException 예외가 발생할것을 예상한다.
@Test (expected = NotEnoughStockException.class)
- Member 객체와 Item 객체 생성하는 것을 반복하는 작업이 있어,
해당 객체들을 생성하는 코드를 따로 메서드로 빼냈다. (command+option+ M)
3. 상품 취소 테스트
주문을 하고, orderService.cancelOrder 을 사용해서 주문을 취소한다.
- 주문을 취소하면 다시 재고가 증가하는지 확인
- 주문 취소하면 OrderStatus가 CANCEL이 되는지 확인
'Algorithm Study' 카테고리의 다른 글
[프로그래머스] 위장 (level.2) / 해시/ JAVA (0) | 2022.06.16 |
---|---|
[프로그래머스] 전화번호목록(level.2) / 해시 / JAVA (0) | 2022.06.15 |
주문 서비스 개발 (OrderService) (0) | 2022.06.15 |
1. 인터넷 네트워크 ( IP/ TCP, UDP/ PORT / DNS) (0) | 2022.06.14 |
[프로그래머스] 완주하지못한 선수(level.1) / 해시 / JAVA (0) | 2022.06.13 |