요구사항은 다음과 같다.
Random 값을 구한 후 Random 값이 4이상인 경우 자동차를 1만큼 증가시킨다.
이 같은 요구사항을 만족하기 위한 구현 코드를 다음과 같이 구현할 수 있다.
public class Car {
private int position;
[...]
public void move() {
if (getRandomNo() >= 4)
this.position++;
}
public int getRandomNo() {
Random random = new Random();
return random.nextInt(10);
}
}
그런데 위와 같이 구현할 경우 move() 메소드에 대한 단위 테스트를 하기 힘들다. 위 코드를 단위 테스트가 가능하도록 리팩토링한다면 어떻게 리팩토링하는 것이 좋을까?
위와 같은 경우는 애플리케이션을 개발하다보면 정말 자주 발생하는 경우 중의 하나이다.
위 샘플 예제는 코드스쿼드 에서 새롭게 진행 중인 마스터즈 코스에서 발췌한 코드입니다. 코드스쿼드의 마스터즈 코스는 코드 리뷰 방식의 개인별 맞춤 학습 방법입니다.
1개의 의견 from FB
1개의 의견 from SLiPP
객체를 객체스럽게 사용하도록 리팩토링해라. 글에 테스트 관련 내용이 추가 되어 참고하면 좋겠음.
의견을 남기기 위해서는 SLiPP 계정이 필요합니다.
안심하세요! 회원가입/로그인 후에도 작성하시던 내용은 안전하게 보존됩니다.
SLiPP 계정으로 로그인하세요.
또는, SNS 계정으로 로그인하세요.