본문 바로가기
개발툴

이클립스 Java Templates 활용 방법

by 탁구치는 개발자 2013. 2. 25.

spring 테스트 시 이클립스의 Templates 기능을 사용하면 훨씬 편리하게 테스트를 할 수 있다.


예를 들어서 스프링의 테스트 컨텍스트를 생성할 때 우리는 항상 @RunWith, @ContextConfiguration 애노테이션을 추가한다.

매번 테스트 클래스를 생성할 때마다 복사해서 붙여 넣는 것도 귀찮고, 그렇다고 타이핑하기에는 시간이 아깝다.


그럼 이런 반복적인 작업을 어떻게 하면 개선할 수 있을까?

그 방법은 자동화할 수 있는 툴을 적극적으로 이용하는 것이다.


그래서 난 이클립스의 Templates을 이용하여 이런 반복적인 작업을 단순화 시켰다. (예전 스터디 모임에서 어느 분이 알려주신 방법이다.)


가령 class 선언부의 위쪽에 커서를 놓은 후 springtest 라고 입력하고, ctrl + space를 누르면 아래와 같은 코드 템플릿이 자동으로 추가가 되는 것이다.

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations = {"/test-application-context.xml"})


다음은 템플릿을 등록하는 방법이다.

Preferences > Java > Editor > Templates 이동 후 New

Name: springtest 입력

Pattern: 아래 코드 입력

${:import('org.junit.runner.RunWith','org.springframework.test.context.ContextConfiguration','org.springframework.test.context.junit4.SpringJUnit4ClassRunner')}

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations = {"/test-application-context.xml"})


이 기능을 이용하여 여러 가지 템플릿을 만들어 놓으면 편리하다.

난 JUnit 테스트 메소드를 생성해 주는 템플릿도 등록해 놓았다.

@${testType:newType(org.junit.Test)}

public void ${specDescription}() {

${is1:importStatic('org.hamcrest.CoreMatchers.*')}

${is2:importStatic('org.junit.Assert.*')}

}


위의 템플릿은 아래와 같은 코드를 생성해 준다. (빨간색 부분)

import static org.hamcrest.CoreMatchers.*;

import static org.junit.Assert.*;


public class UserControllerTest {


@Test

public void specDescription() {

}