뭐, 종종 하는 짓이긴 하지만 또 상속입니다. 다중 상속이 됐으면 한 판에 끝나겠지만 뭐 그냥 DI만 필요한 경우, 트랜젝션 관리도 필요한 경우, jdbcTemplate가 필요한 경우의 클래스들이 따로 따로 있기 때문에 각각 만들어놓고 쓰는 수고를 좀 해야겠지요 -_-
자바 1.4에서도 돌아갈 수 있는 스프링의 테스트용 추상 클래스 중에서 한 놈을 뽑아서 거기서 확장을 하겠습니다.
거기에 getConfigLocations를 정의해놓고, 생성자에 약간의 세팅만 해 주면 그나마 비슷한 분위기를 낼 수는 있습니다.
대강 보시면 아시겠지만 스프링에서 제공하는 ClassUtils 를 이용하였습니다.
public abstract class AbstractTests extends
AbstractDependencyInjectionSpringContextTests {
public AbstractTests () {
setDependencyCheck(false);
}
protected String[] getConfigLocations() {
return new String[] { ClassUtils.addResourcePathToPackagePath(getClass(), ClassUtils.getShortName(getClass())
+ "-context.xml") };
}
}
이제 이 놈을 상속 받은 테스트 클래스들은 동일한 패키지 내에 "테스트클래스이름-context.xml" 파일을 만들어서 스프링 빈 설정을 하시면 되겠습니다. 애플리케이션 공통으로 쓰는 applicationContext.xml 파일 등등은 import 선언으로 가져와버리면 되겠죠.
1.4에서 하나 아쉬운 게 또 있다면 @autowired 를 쓸 수 없기 때문에 set메소드는 일일이 만들어줘야 된다는 점이 있습니다.







2008/06/27 21:55




2008/06/27 16:20
분류없음


1.7로 업그레이드.
Automatically reloading iBATI...
