Replies: 5 comments 7 replies
-
쿠폰의 단위테스트를 하려면 어쩔 수 없지 않을까요 |
Beta Was this translation helpful? Give feedback.
0 replies
-
createdAt, updatedAt은 대개 데이터베이스에 예의 상 넣어두는 경우가 많은데, |
Beta Was this translation helpful? Give feedback.
0 replies
-
결론Coupons 없앤다.CouponStatistics 없앤다.Histories(일급컬렉션)를 만든다.Histories를 구하는 로직을 통째로 VISIT_HISTORY를 통해서 구하자 (첫 방문일, 방문 횟수)나머지 reward_count, max_stamp_count는 서비스 레이어에서 잘 조합해서 만든다histories.getFirstVisitDate(), histories.getStampCount() |
Beta Was this translation helpful? Give feedback.
2 replies
-
각자 생각 쓰레드 |
Beta Was this translation helpful? Give feedback.
4 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
생성자에 createdAt, updatedAt 추가
이렇게 생각한 이유는 현재 Coupon의 생성자로는 Coupon 의 단위테스트가 불가능하다고 생각합니다. 현재 저희 테스트에 Coupon 에 대한 단위 테스트가 없더라구요. Coupon 로직 중 첫 방문 날짜를 구할 때 createdAt을 보는데요. 현재 저희의 생성자로는 해당 값이 null일 수 밖에 없습니다. 그래서 사실 단위테스트가 불가능하다고 볼 수 있죠.
생성자에 createdAt을 추가하지 않고 단위테스트를 진행하고자 한다면 실제 repository를 띄우고 save()를 통해 createdAt을 넣어야합니다. 그러나 이것은 도메인 단위테스트에 repository를 엮는 꼴이 되어버립니다. 그래서 저는 생성자 추가 vs CouponStatics단위 테스트에 repository엮기 중 전자인 createdAt, updatedAt을 받는 생성자를 추가하는게 좋다고 생각합니다.
createdAt, updatedAt을 받는 생성자는 테스트에서 밖에 쓰이지 않을 것 같은데요. 그러나 이게 비즈니스 로직을 담고 있는 메서드가 아닌 생성자라는 점과, 생성자를 추가함으로써 단위 테스트가 가능하다는 이점이 더 크다고 생각합니다.
API : 카페 사장이 고객 목록 조회 가능 (사장 모드)
Beta Was this translation helpful? Give feedback.
All reactions