1. 아래와 같이 TDD로 테스트하기 어려운 부분을 수정하려고 한다. package game.core; public class Car implements Comparable { ... public void move() { if (getRandomNo() == FORWORD_NUM){ //random 숫자때문에 TDD로 테스트하기가 어렵다. this.position++ } } private int getRandomNo() { Random random = new Random(); return random.nextInt(MAX_BOUND); } ... } 2. 아래와 같이 값을 주입받는 식으로 수정 수 있다 기존 메서드를 오버로딩해서 사용 할 수도 있다. 점차적으로 기존 코드를 삭제해가면서 진행 할 수도 있다..
원시값과 문자열을 포장한다는 것의 포인트는 immutable하게 만든다는 것이다. 추가적으로, 역할들을 나눠가지게 되기 때문에 TDD하기 쉬워진다. 1. immutable 한 객체를 return 하는 방법 package game.core; public class Position { private final int postion; public Position() { this(3); } public Position(int postion) { this.postion = postion; } public Position move() { return new Position(postion + 1); //immutable한 객체를 return 한다. } } 2. 하지만 이와같이 하면 새로운 인스턴스를 생성하므로 성능이..
- Total
- Today
- Yesterday