저자의 글 > 테스트 주도 개발의 궁극적인 목표는 작동하는 깔끔한 코드(clean code that works) 이다. 작동하는 깔끔한 코드가 훌륭한 목표임을 말해주는 이유에는 예측가능한 개발방법이다. 끊임없이 발생할 버그에 대해 걱정하지 않고, 일이 언제 마무리될지 알 수 있다. 코드가 가르쳐주는 모든 교훈을 학습할 기회를 갖게 된다. 처음 생각나는 대...
화폐 예제 앞서 TDD 책에 본격적으로 들어가기 전에 저자가 한 말 중 TDD의 프로그래밍 순서는 아래와 같다고 하였다. > 1. 빨강 - 실패하는 작은 테스트 작성, 처음에는 컴파일 조차 되지 않을 수 있음. > 2. 초록 - 빨리 테스트가 통과하게끔 만듬. 이를 위에 어떤 죄악을 저질러도 좋음 > 3. 리팩토링 - 일단 테스트를 통과하게만 하는 와중에...
진행 과정 > checklist $5 + 10CHF = $10 (환율이 2:1일 경우) $5 * 2 = $10 amount를 private 으로 만들기 Dollar 부작용(side effect)? Money 반올림? 앞서 다중통화를 지원하는 포트폴리오 프로그램에 Dollar 객체를 TDD 방식으로 설계하는 과정해서 해낸 일을 정리해보자면. 어떤 금액(주...
5장. 솔직히 말하자면 > checklist $5 + 10CHF = $10 (환율이 2:1일 경우) $5 * 2 = $10 amount를 private 으로 만들기 Dollar 부작용(side effect)? Money 반올림? equals() hashCode() Equal null Equal object (new) 5CHF * 2 = 10CHF 목록에...
전 포스팅에서는 또 다른 통화인 Franc 을 만들고, 그에 발생하는 중복을 제거하기 위해 상위 클래스인 Money 클래스를 정의하였다. 그리고 Franc 와 Dollar 클래스에 중복되는 amount 변수나 equals() 메서드를 상위 클래스에 올리면서 리팩토링을 진행하고 있었다. 또, 그에 따라 발생하는 테스트 케이스의 빨간불을 해결하였다. 이제 해...