$5 + 10 CHF = $10(환율이 2:1일 경우)
$5 X 2 = $10
aount를 private으로 만들기
Dollar 부작용(side effect)?
Money 반올림
equals()
hashcode()
Equal null
Equal object
이목록에서 첫번째 테스트에 어떤 식으로 접근해야할까?
일단 첫번째 테스트를 실행하려면 Franc(프랑)이라는 객체가 필요한 것 같다.
$5 + 10 CHF = $10(환율이 2:1일 경우)
$5 X 2 = $10
amount를 private으로 만들기
Dollar 부작용(side effect)?
Money 반올림
equals()
hashcode()
Equal null
Equal object
5CHF X 2 = 10CHF
두번째 테스트를 만들었듯이 Franc(프랑)에 대한 테스트를 만들어보자
@Test
public void testFrancMultiplication(){
Franc five = new Franc(5);
assertEquals(new Franc(10), five.times(2));
assertEquals(new Franc(15), five.times(3));
}
... 뭔가 복붙은 개발자가 아니야 빼액 하는소리가 여기까지 들리는 것같지만 모르겠다 일단 진행해보겠다.
우리 주기에는 서로 다른 단계들이 있다.
처음 네 단계는 빨리 진행해야 한다.
그렇게 되면 새 기능이 포함되더라도 잘 알고 있는 상태에 이를 수 있다.
그다음은... 좀 걱정이 될것이다.
적절한 시기에 적절한 설계를 돌아가게 만들고, 올바르게 만들어라.
아직 죄는 지고 있지만 다음장에서 차차해보기로 하고 넘어가자!
public class Franc {
private int amount;
public Franc(int amount) {
this.amount = amount;
}
public Franc times(int multiplier) {
return new Franc(amount * multiplier);
}
@Override
public boolean equals(Object o) {
Franc franc = (Franc) o;
return amount == franc.amount;
}
}
검토해보면 우리는
$5 + 10 CHF = $10(환율이 2:1일 경우)
$5 X 2 = $10
amount를 private으로 만들기
Dollar 부작용(side effect)?
Money 반올림
equals()
hashcode()
Equal null
Equal object
5CHF X 2 = 10CHF
Dollar/Franc 중복
공용 equals
공용 times
뭔가 하나를 해결하니 숙제가 더 생기는것 같지만... 기분탓이다