1부 16장 드디어, 추상화
Expression.plus를 끝내려면 Sum.plus()를 구현해야 한다. 그리고 Exprssion.times()를 구현하면 전체 예제가 끝난다.
Sum.plus()에 대한 테스트를 작성하자.
@Test
public void testSumPlusMoney() {
Expression fiveBucks = Money.dollar(5);
Expression tenFrancs = Money.franc(10);
Bank bank = new Bank();
bank.addRate("CHF", "USD", 2);
Expression sum = new Sum(fiveBucks, tenFrancs).plus(fiveBucks);
Money result = bank.reduce(sum, "USD");
assertEquals(Money.dollar(15), result);
}
Sum 클래스도 수정하자.
// Sum
public Expression plus(Expression addend) {
return new Sum(this, addend);
}
@Test
public void testSumPlusMoney() {
Expression fiveBucks = Money.dollar(5);
Expression tenFrancs = Money.franc(10);
Bank bank = new Bank();
bank.addRate("CHF", "USD", 2);
Expression sum = new Sum(fiveBucks, tenFrancs).times(2);
Money result = bank.reduce(sum, "USD", bank);
assertEquals(Money.dollar(20), result);
}
지금가지 우리는
- 미래에 코드를 읽은 다른 사람들을 염두에 둔 테스트를 작성했다.
- TDD와 여러분의 현재 개발 스타일을 비교해 볼 수 있는 실험 방법을 제시했다.
- 또 한 번 선언부에 대한 수정이 시스템 나머지 부분으로 번져갔고, 문제를 고치기 위해 컴파일러의 조언을 따랐다.
- 잠시 실험을 시도했는데, 되지 않아서 버렸다.
Author And Source
이 문제에 관하여(1부 16장 드디어, 추상화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@miiunii/1부-16장-드디어-추상화저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)