[스프링 3.0 테스트 확장] 애노테이션 설정 기반 테스트 러너 만들기 2
@RunWith(SpringJUnit4ClassRunner.class)
@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);
}
}
이런 테스트가 있고, @ContextConfigruation에 아무런 locations를 지정하지 않았을 때는 테스트 클래스 이름 + AppConfig.java 파일을 찾아서 해당 클래스를 애노테이션 설정 클래스로 인식하는 겁니다.
@Configuration
public class SpringAnnotationConfigTestAppConfig {
@Bean
public String name(){
return "keesun";
}
}
즉 위와같은 애노테이션 설정 클래스를 기본 설정으로 인식하는거죠. 물론 AppConfig라는 이름을 다른 이름으로 변경할 수 있도록 확장성을 고려해야겠습니다.
@ContextConfiguration(locations = {"AppConfig.java", "classpath:../"})
@ContextConfiguration(locations = {"classpath:./AppConfig.java", "../"})
.java로 끝나는 location 정보는 AnnotationConfigApplicationContext의 register를 이용하며, .java로 끝나지 않는 location 정보는 패키지로 인식하여 AnnotationConfigApplicationContext의 scan을 이용해주는 겁니다. 물론, 각각의 resource 정보는 스프링의 Resource prefix인 classpath:, file, url:을 이용할 수 있어야겠습니다.
이제 구현 ㄱㄱㅆ