View
99
Download
2
Category
Preview:
DESCRIPTION
TDD 퀴즈 1 리뷰 - 비디오 대여 -. 백기선. 코드 리뷰 차례. Dazzilove( 류성희 ) Javajigi( 박재성 ) Kanisuka( 박호연 ) Keesun( 백기선 ) LeeKiWon( 이기원 ) Nije( 김재진 ) Sungyoon( 김성윤 ). Dazzilove( 류성희 ) - 비디오 대여 -. 프로젝트 체크아웃. JUnit 3 라이브러리 추가 해줘야 함 . 인코딩 MS949 테스트 코드와 제품 코드 구분 없음. 클래스 구조. rentItems. Customer. - PowerPoint PPT Presentation
Citation preview
TDD 퀴즈 1 리뷰- 비디오 대여 -
백기선
코드 리뷰 차례
• Dazzilove( 류성희 ) • Javajigi( 박재성 )• Kanisuka( 박호연 )• Keesun( 백기선 )• LeeKiWon( 이기원 )• Nije( 김재진 )• Sungyoon( 김성윤 )
Dazzilove( 류성희 ) - 비디오 대여 -
프로젝트 체크아웃
• JUnit 3 라이브러리 추가 해줘야 함 .• 인코딩 MS949 • 테스트 코드와 제품 코드 구분 없음 .
클래스 구조
Customer Video
rentItems
videos
RentalReport
비디오에 아이디가 있다 ?
요구 사항에 없는 내용…
추가 구현인지 미리 설계한 것인지…
왜 필요할까 ?
비디오가 비디오 목록을 가진다 ?
비디오 샵이 비디오를 가지고 있는 것이 자연스럽지 않을까 ?
보너스 포인트 속성 중복
bonusPoint 속성 중복
-Video 에도 있고
-VideoKindItem 에도 있음
리팩터링 필요
Replace Conditional with Polymorphism
Extract Method
String 애착증
enum 의 장점인 type-safety 를 과감히 내던진 이유는 ?
테스트 코드 리팩터링 필요
그런데 테스트 내용이 조금…
setVideoKind() 에 로직이 들어가있음 .
Getter/Setter 에 로직이 들어가는 것에 대해 어떻게 생각하세요 ?
테스트 커버리지99.7%
옥의티
Javajigi( 박재성 ) - 비디오 대여 -
프로젝트 체크아웃
• 메이븐 프로젝트• 인코딩 MS949• 테스트와 제품 코드 구분• 불필요한 의존성 존재 - JMock
클래스 구조
Customer RentalVideo
rentalVideos
Video
Documentary
Sports Movie
VideoType
rentalHistory
대여 행위는 고객이 주도한다 .
• 고객이 어떤 비디오를 얼마 동안 빌린다 .
“ 대여” rent() 는 Customer 의 책임일까 ? VideoShop 의 책임일까 ?
대여 날짜가 필수 ?
대여 날짜를 비디오가 반드시 가지고 있어야 할까 ?어떤 요구 사항에 의해 추가된 것일까 ?추가 기능인가 ?
대여 상태 확인
대여 날짜 , 대여 기간 , 현재 날짜로 대여 상태를 확인할 수 있다 .
요구 사항에 없는 추가 기능 .
Mocking 사용
RentalVideo 를 단위 테스트 하기 위해서 Video Mock 객체 사용 .
Customer 와 Calendar 는 ?
테스트 코드 리팩터링 필요
비디오 마다 한 번씩 대여를 해야 하나 ?
요구 사항
고객은 한번에 여러 개의 비디오를 대여할 수 있으나 각각의 대여 (Rental) 기간은 다를 수 있다 .
=> 대여 행위 (rent) 를 여러 번 하여여러 개의 비디오를 대여 한다 .
테스트 커버리지
87.3%
군대 군대 None-TDD 코드가 보임
doortts( 채수원 ) - 비디오 대여 -
클래스 구조
Customer Rental
rentals
Video
DocumentaryType
SportsTypeMovieType
AbstractVideoType
테스트 커버리지100%
Recommended