[Spring 3.1] TestContext

스프링  3.1 TestContext 변경 내역은 표면적으로 보자면, 크게 두가지입니다.

  • @Configuration 지원
  • @ActiveProfiles 지원

사실 자바 설정은 스프링 3.0 부터 지원했지만, 사용하기 어렵던 이유가, 스프링 TestContext에서 사용하기 번거롭다는 점과, XML 네임스페이스에 해당하는 기능이 없다는 것이었는데, 스프링 3.1부터는 이런 문제가 완전 해결됐습니다.

이런 자바 설정 파일이 있을때, 다음과 같이 테스트를 작성할 수 있습니다.

여기서 주의하실 것은, @ContextConfiguration에는 location이나 classes 둘 중 하나만 사용할 수 있다는 것입니다. 따라서, 여러 종류의 설정 파일, 보통 XML 설정과 자바 설정을 혼용하시겠죠. 그밖에 프로퍼티즈 파일도 사용할 수 있지만.. 좀.. 쓰기가 ㅋ; 암튼, 그런 경우에 설정 파일 중에 하나를 진입점으로 사용해야 합니다.

XML 설정을 진입점으로 사용하려면, 자바 설정을 컴포넌트 스캔을 하거나, 직접 <bean/>을 사용해서 XML 설정에 빈으로 등록해주면 됩니다.

반대로, 자바 설정을 진입점으로 사용하려면, XML 설정을 @ImportResource로 자바 설정에 추가해주면 됩니다.

다음으로 스프링 3.1 TestContext의 프로파일 지원 기능은 스프링 3.1에 추가된 빈 프로파일링 기능을 사용할 때, 해당 프로파일을 손쉽게 테스트할 수 있는 기능입니다.

이렇게 빈 프로파일을 사용한 설정 파일이 있을 때, default 프로파일이 제대로 적용되는지, korea 라는 프로파이일 때 toby라는 id를 가진 빈이 정말 다른 걸로 바뀌는지, 다음과 같이 확인할 수 있습니다.