< 현재 구현해야할 목록 >
테스트는 통과했지만 해당 Dollar의 값이 영원히 바뀌어 버린다. 아래와 같은 기능을 사용하고 싶다.
public void testMultiplication() {
Dollar five = new Dollar(5);
five.times(2);
assertEquals(10, five.amount);
five.times(3);
assertEquals(15, five.amount);
}
test code와 Dollar class를 아래와 같이 바꾸면 작동한다.
public void testMultiplication() {
Dollar five = new Dollar(5);
Dollar product = five.times(2);
assertEquals(10, product.amount);
product = five.times(3);
assertEquals(15, product.amount);
}
public class Dollar {
public int amount;
public Dollar(int amount) {
this.amount = amount;
}
public Dollar times(int multiplier) {
return new Dollar( amount * multiplier);
}
}
< 현재 구현해야할 목록 >
위의 과정이 잘못됨을 안다. 하지만 일단 테스트를 통과하는게 우선이다. 빨리 통과하기 위해서 취할 수 있는 방법은 2가지다.
우리가 지금까지 한 일은