- Eclipse 에서 static import 를 쉽게 사용하기
- 日常茶飯事
- 2011. 3. 14. 00:39
테스트 코드를 작성하다 보면 org.junit.Assert 클래스나 org.hamcrest.CoreMatchers 클래스의 메서드를 많이 사용하게 되는데 이게 좀 귀찮은 부분이 있다.
메서드가 여러 개라서 일일이 다 적기는 힘들다.
그래서 와일드카드를 사용하는데, Eclipse 의 Organize Imports 기능을 사용하면 와일드카드로 import 한 코드가 실제 사용된 메서드로 바뀐다. 1
그 후 import 되지 않은 메서드를 사용할때는?
매번 이러니 귀찮다.
그래서 Template 을 사용했다.
import static org.junit.Assert.*; 라는 구문이 삽입되도록 추가했다.
그러나 매번 소스 파일 최상단으로 이동해야 되서 귀찮아서 조금 사용하다 말았다.
이 문제에 대해서 여러 사람들이 고민하고 좋은 해결책을 제시했다.
Template 을 보다 보니 이미 import CoreMatchers, Test 라는 템플릿이 있었다.
여러 가지 방법들을 조합해서 몇가지 Template 을 만들었다.
create test method //잘안쓰나?
@${testType:newType(org.junit.Test)}
public void test${testname}(){
${si1:importStatic('org.hamcrest.CoreMatchers.*')}${si2:importStatic('org.junit.Assert.*')}${cursor}
}
import tests
${is2:importStatic('org.junit.Assert.*')}${is3:importStatic('org.springframework.test.web.servlet.setup.MockMvcBuilders.*')}${is4:importStatic('org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*')}${is5:importStatic('org.springframework.test.web.servlet.result.MockMvcResultMatchers.*')}${is6:importStatic('org.springframework.test.web.servlet.result.MockMvcResultHandlers.*')}${is7:importStatic('org.mockito.Mockito.*')}${is8:importStatic('org.mockito.Matchers.*')}${is9:importStatic('org.assertj.core.api.Assertions.*')}${is10:importStatic('org.mockito.ArgumentCaptor.*')}
${is1:importStatic('org.hamcrest.CoreMatchers.*')}${is2:importStatic('org.junit.Assert.*')}${is3:importStatic('org.springframework.test.web.servlet.setup.MockMvcBuilders.*')}${is4:importStatic('org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*')}${is5:importStatic('org.springframework.test.web.servlet.result.MockMvcResultMatchers.*')}${is6:importStatic('org.springframework.test.web.servlet.result.MockMvcResultHandlers.*')}${is7:importStatic('org.mockito.Mockito.*')}
assertThat with static import
${si1:importStatic('org.assertj.core.api.Assertions.*')}assertThat(${cursor}
assertThat(${cursor}, is(${si1:importStatic('org.hamcrest.CoreMatchers.*')}${si2:importStatic('org.junit.Assert.*')}
when
${si1:importStatic('org.mockito.Mockito.*')}when(${cursor}
이제는 테스트 코드 작성에만 신경쓰자.
- Number of static import needed for .* 를 99에서 1로 변경하면 된다고 함. [본문으로]
Recent comment