● 쉬운 경우에서 어려운 경우로 진행
● 예외적인 경우에서 정상인 경우로 진행
방식
1. 정해진 값을 리턴
2. 값 비교를 이용해서 정해진 값을 리턴
3. 다양한 테스트를 추가하면서 구현을 일반화
이후에는 코드 중복, 메서드 추출 등의 방법을 통해서 지속적인 리팩토링 작업 필요
java.time.LocalDate 클래스의 plusMonths() 함수
: 특정 LocalDate 객체에 지정된 개월 수를 더한 새로운 LocalDate 객체를 반환하는 메서드
이 함수는 원래의 날짜를 변경하지 않고 새로운 날짜 객체를 생성하며, LocalDateTime에서도 동일한 방식으로 사용가능
* 이전 달과 이번 달의 말일이 같지 않아도 알아서 처리해줌
파라미터 개수는 적을 수록 코드 가독성과 유지보수에 유리함
→ 파라미터의 개수가 3개 이상이 될 때 객체로 바꿔 1개로 줄이는 것을 고려해야함
TDD를 시작할 때 테스트할 목록을 미리 정하면 좋음
- 이때 지라/트렐로 같은 시스템을 이용하면 테스트 사례를 하위 작업으로 등록해서 테스트 통과 여부 추적 가능
하나씩 성공시켜나가는 형식으로 짧은 개발 리듬을 잡고 가는 것이 더 효율적인 방식
테스트 코드 구현에서 막혔을 경우 단언/검증 코드부터 하나씩 만들어가보는 것이 좋음