[스프링 3.0 테스트 확장] 애노테이션 설정 기반 테스트 러너 만들기 3
하악 하악.. 배가 너무 고파요. 언능 집에가서 집안일 도와줘야 하는데;; 오늘 너무 늦게 들어가서 와이프 고생할까봐 마음이 아프네요. ㅠ.ㅠ 미안해 내가 코딩을 못해서.. 너무 늦게 들어가게 생겼어;; 나머진 내일 해야지;; 후딱 갈께;; (이것만 쓰고;;)
AnnotationContextLoader acl = new AnnotationContextLoader();
@Test
public void generateDefaultLocations(){
String[] result = acl.generateDefaultLocations(SpringAnnotationConfigTest.class);
assertThat(result[0], is("sandbox.springtest.sample.SpringAnnotationConfigTestAppConfig.java"));
}
@Test
public void modifyLocations(){
// absolute location
String[] result = acl.modifyLocations(SpringAnnotationConfigTest.class, "/sandbox/springtest/sample/SpringAnnotationConfigTestAppConfig.java");
assertThat(result[0], is("sandbox.springtest.sample.SpringAnnotationConfigTestAppConfig.java"));
result = acl.modifyLocations(SpringAnnotationConfigTest.class, "/sandbox/springtest/sample/");
assertThat(result[0], is("sandbox.springtest.sample"));
result = acl.modifyLocations(SpringAnnotationConfigTest.class, "/sandbox/springtest/sample");
assertThat(result[0], is("sandbox.springtest.sample"));
// relative location
result = acl.modifyLocations(SpringAnnotationConfigTest.class, "./SpringAnnotationConfigTestAppConfig.java");
assertThat(result[0], is("sandbox.springtest.sample.SpringAnnotationConfigTestAppConfig.java"));
result = acl.modifyLocations(SpringAnnotationConfigTest.class, "./");
assertThat(result[0], is("sandbox.springtest.sample"));
result = acl.modifyLocations(SpringAnnotationConfigTest.class, ".");
assertThat(result[0], is("sandbox.springtest.sample"));
// classpath: prefix
// result = acl.modifyLocations(SpringAnnotationConfigTest.class, "classpath:./SpringAnnotationConfigTestAppConfig.java");
// assertThat(result[0], is("sandbox.springtest.sample.SpringAnnotationConfigTestAppConfig.java"));
}
}
경로 가져오는 부분이 복잡하므로, TDD로 테스트! 이런건 테스트 먼저 만들기도 좀 쉬운편이죠.
@ContextConfiguration(loader = AnnotationContextLoader.class, locations = {"/sandbox/springtest/sample/SpringAnnotationConfigTestAppConfig.java"})
//@ContextConfiguration(loader = AnnotationContextLoader.class, locations = {"/sandbox/springtest/sample/"})
//@ContextConfiguration(loader = AnnotationContextLoader.class, locations = {"/sandbox/springtest/sample"})
//@ContextConfiguration(loader = AnnotationContextLoader.class, locations = {"./SpringAnnotationConfigTestAppConfig.java"})
//@ContextConfiguration(loader = AnnotationContextLoader.class, locations = {"./"})
//@ContextConfiguration(loader = AnnotationContextLoader.class, locations = {"."})
//@ContextConfiguration(loader = AnnotationContextLoader.class)
public class SpringAnnotationConfigTest {
@Autowired ApplicationContext ac;
@Test
public void di(){
assertNotNull(ac);
String name = ac.getBean("name", String.class);
assertNotNull(name);
}
}
현재 구현한 것으로 사용할 수 있는 방법을 나열해 봤습니다. 주석을 바꿔가면서 테스트 해볼 수 있지요;; 물론 이미 테스트에서 경로 확인은 했지만, 그 뒤에 벌어지는 일에 대해서는 저걸로 통합 테스트;;
구현체는 비공개!!
prefix 붙이는 부분만 처리되면 공개할지도?? 말지도??