TDD를 하다보면 대개 테스트 클래스(TestCase)를 먼저 작성하고, 테스트 대상이 되는 클래스(target class/production code)를 작성하게 됩니다. 이클립스에 이와 같은 작업을 하면 자동 완성이나 빠른 보정(Quick Fix) 기능을 자주 활용하죠. 디폴트 상태에서 빠른 보정으로 메소드를 생성하면 다음과 같은 템플릿이 적용된다.
그런데 이렇게 되면 종종 테스트 메소드 내의 각종 확인(assertion)을 무사 통과 하는 경우들이 발생한다. 아무 것도 구현하지 않은 메소드를 호출하면 테스트가 실패하도록 하는 것이 TDD에 유익하다.
이를 위함 기법으로 토비님께 배운 것이 있다. 토비님 역시 로드 존슨의 책을 통해 알았다고 하여 찾아보니 Expert One-on-One J2EE Development without EJB 436쪽에서 해당 내용을 찾을 수 있었다.
이클립스 Windows > Preferences에서 Java > Code Style > Code Templates를 찾은 후에 Code > Method body를 보면 아래와 같은 매크로가 정의되어 있다.
이를 다음과 같이 바꿔준다.
템플릿 수정후 메소드를 자동생성 하면 다음과 같이 생성된다.
이제 생성된 메소드는 무조건 UnsupportedOperationException을 발생시키기 때문에 구현 없이 해당 메소드를 호출하면 테스트가 실패한다.
팀 표준화를 위해서 이클립스에서 export/import 하여 템플릿을 공유할 수 있다. 템플릿 파일은 다음과 같다.
생성자(Constructor)에도 동일한 효과를 적용한다.
참고:
- Expert One-on-One J2EE Development without EJB 436쪽
- Java 4 API: UnsupportedOperationException
public void someMethod() {
// TODO Auto-generated method stub
}
// TODO Auto-generated method stub
}
그런데 이렇게 되면 종종 테스트 메소드 내의 각종 확인(assertion)을 무사 통과 하는 경우들이 발생한다. 아무 것도 구현하지 않은 메소드를 호출하면 테스트가 실패하도록 하는 것이 TDD에 유익하다.
이를 위함 기법으로 토비님께 배운 것이 있다. 토비님 역시 로드 존슨의 책을 통해 알았다고 하여 찾아보니 Expert One-on-One J2EE Development without EJB 436쪽에서 해당 내용을 찾을 수 있었다.
이클립스 Windows > Preferences에서 Java > Code Style > Code Templates를 찾은 후에 Code > Method body를 보면 아래와 같은 매크로가 정의되어 있다.
// ${todo} Auto-generated method stub
${body_statement}
${body_statement}
이를 다음과 같이 바꿔준다.
throw new UnsupportedOperationException();
템플릿 수정후 메소드를 자동생성 하면 다음과 같이 생성된다.
public void someMethod() {
throw new UnsupportedOperationException();
}
throw new UnsupportedOperationException();
}
이제 생성된 메소드는 무조건 UnsupportedOperationException을 발생시키기 때문에 구현 없이 해당 메소드를 호출하면 테스트가 실패한다.
팀 표준화를 위해서 이클립스에서 export/import 하여 템플릿을 공유할 수 있다. 템플릿 파일은 다음과 같다.
생성자(Constructor)에도 동일한 효과를 적용한다.
참고:
- Expert One-on-One J2EE Development without EJB 436쪽
- Java 4 API: UnsupportedOperationException
