More Related Content More from Kyungryul KIM (20) Cleancode ch16 serialdate_refactoring2. 16.1 SerialDate 리팩토링
❖ SerialDateTests [목록 B-2]
❖ 클로버 코드 커버리지 분석 도구 수행해 본 결과
185개 문장중 91개문장만 수행. 약 50%의 커버리지.
❖ 단위 테스트 케이스 추가[목록 B-4]
❖ 50% -> 92%
Editor's Notes \n \n \n \n \n \n \n SpreadsheetDate에서만 사용되는 상수값을 옮김.\n SerialDate 에서 자식클래스 SpreadSheetDate 를 생성하고 있음.\n 자식 클래스 생성을 제거하기 위해\n \n LAST_DAY_OF_MONTH 는 정적 함수에서만 사용.(public제거?)\nAGGREGATE_DAYS_TO_END_OF_MONTH 는 사용되지 않음.\n AGGREGATE_DAYS_TO_END_OF_PRECEDING_MONTH 는 SpreadsheetDate에서만 사용되어 옮김.\n \n 개/반개/폐구간 정의.\n description(), SerialDate(), \nisValidWeekdayCode() 은 enum으로 변경했으므로 삭제.\n final 삭제, \n-1을 제거한다는 주석외에 의미없음. 이것도 enum으로 변경했으므로 의미없음.\nIllegalArgumentException 발생.\n DateFormatSymbols 클래스 이용.\n 쓸데없이 어렵게 구현된 코드 제거.\n \n 윤년확인.\n static 제거. 인스턴스 메서드로 수정.\ntoSerial()을 getOrdinalDay()\nAddDays(7), plusDays(5) 의미?(p378)\n 임시변수를 사용 좀 더 명확하도록 수정.\n 인자로 받는 SerialDate의 의미가 없다. 그래서 제거.\n\n toDate() 함수가 추상 메서드일 필요가 없어서 abstract 제거.\n 추상메서드 isInRange()를 DayDate로 옮기고, abstract제거.\n \n