Skip to content

Comments

[Day 3-4] Product 도메인 개발#6

Open
JeongUijeong wants to merge 20 commits intoboocam-project:JeongUijeongfrom
JeongUijeong:main
Open

[Day 3-4] Product 도메인 개발#6
JeongUijeong wants to merge 20 commits intoboocam-project:JeongUijeongfrom
JeongUijeong:main

Conversation

@JeongUijeong
Copy link

@JeongUijeong JeongUijeong commented Aug 4, 2023

Product 도메인 개발 PR 올리니, 확인해주시고 피드백 부탁드립니다! 😁

<상품 등록 및 재고 추가 기능>

  • 상품 등록 및 재고 추가 기능 구현
  • 재고 0개인 경우 재고 추가 시 판매 상태 SELLING으로 변경
  • 양식에 맞지 않을 경우 등록 및 재고 추가 불가

<관리자 권한 체크>

  • 관리자만 상품 등록 및 재고 추가 가능
  • 관리자인지 확인을 위해 UserService에 관리자 확인 기능 추가

<판매 시 재고 수정>

  • 판매 시 상품 재고가 판매 개수만큼 차감
  • 판매 후 상품 재고가 0이 되면 판매 상태 STOP_SELING으로 변경

<익셉션>

  • 권한 부족, 상품 재고 부족, 해당 상품 찾을 수 없음 익셉션 처리

- UserTest 클래스를 삭제하고 UserServiceTest를 생성하여 단위테스트를 진행
- mock 객체를 통한 독립적인 테스트 코드 구현
- 예외처리 확인 테스트 코드 추가
- inner 클래스를 활용한 테스트 세분화
- restController -> restcontroller
- UserControllerTest -> UserRestControllerTest
- 상품 Dto 생성
- 상품 서비스 생성
- 상품 판매 상태 변경 시 발생할 수 있는 익셉션 생성
- 상품 jpa 레포지토리 생성
- 새상품 등록 및 상품 재고 추가 요청 도메인 생성
- 새상품 등록 및 상품 재고 추가 기능 구현
- 관리자가 아닐 경우 발생시킬 익셉션 생성
- 익셉션 발생 시 적절한 응답을 보내도록 컨트롤러 어드바이스 생성
- 상품 등록 및 재고 추가 컨트롤러(REST) 구현
@JeongUijeong JeongUijeong reopened this Aug 4, 2023
@JeongUijeong JeongUijeong changed the base branch from main to JeongUijeong August 4, 2023 13:27
@KwonJuHwan
Copy link

TEST를 상세히 구현해주셨네요. 꼼꼼함이 느껴지는 코드입니다 😁

@KwonJuHwan KwonJuHwan self-requested a review August 7, 2023 08:33
}
}

@PostMapping("/stock-up")

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

상품 등록만이 아닌 상품 재고 추가 부분은 생각하지 못했네요

});
assertEquals("일치하는 상품이 없습니다.", exception.getMessage());
verify(productRepository, times(1)).findById(any(Long.class));
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

사용자가 상품을 구매할 때, 일치하는 상품이 없는 경우에 대한 테스트는 어떤 시나리오가 있을까요?
사용자가 상품을 구매할 때엔, 상품 리스트 페이지나 상품 상세 페이지에서 상품 구매를 진행한다고 하면, 상품이 있다는 전제 하에 진행되므로 필요하지 않는 테스트라고 생각되어 리뷰를 남깁니다. 저의 생각으로는 일치하는 상품이 없는 경우는 앞선 상품 재고 추가상품 이름으로 검색과 같은 케이스에서 필요한 TEST라고 생각해요

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

여러 상황을 테스트 해보려다 보니, 불필요한 테스트를 추가해버렸네요! 짚어주셔서 감사합니다~😅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants