(6) 1부 화폐예제 - 11,12장 드디어, 더하기
2021. 4. 9. 17:28ㆍ개발공부/테스트 주도 개발
728x90
11장 모든 악의 근원
하위 클래스 기능을 모두 상위 클래스로 이관해줍니다. 과정에서 코드 의미를 변경하지 않고 하위 클래스에 대한 참조를 상위 클래스에 대한 참조로 변경할 수 있습니다.
- Money.franc() 변경
12장 드디어, 더하기
서로 다른 통화를 더하는 기능 테스트를 위해 Money 객체와 외부 프로토콜은 같으면서 내부 구조는 두 Money의 합을 나타내는 새로운 객체(imposter)를 만들고자 합니다.
Expression은 연산의 결과, Bank는 환율을 적용해 단일통화로 축약하는 객체입니다. 인터페이스가 더 가볍기 때문에 Expression은 인터페이스로 생성해줬습니다.
1
2
3
4
5
6
7
8
|
@Test
public void testSimpleAddition() {
Money five = Money.dollar(5);
Expression sum = five.plus(five);
Bank bank = new Bank();
Money reduced = bank.reduce(sum, "USD");
assertEquals(Money.dollar(10), reduced);
}
|
cs |
출처 : 테스트 주도 개발 - 켄트 벡
'개발공부 > 테스트 주도 개발' 카테고리의 다른 글
[넥스트스텝] 반복문 내 객체생성은 성능을 저하시킬까? (0) | 2021.09.02 |
---|---|
[넥스트스텝] TDD 리팩토링 연습과정 (0) | 2021.09.02 |
(4) 1부 화폐예제 - 7,8장 객체 만들기 (0) | 2021.03.30 |
(3) 1부 화폐 예제 - 3~6장 동질화, 리팩토링 (0) | 2021.03.29 |
(2) 1부 화폐 예제 - 1,2장 Money 객체 (0) | 2021.03.23 |