스프링 2.5 기반(JUnit 4.4 사용) 테스트 코드
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class MemberTest {
@Autowired
private Member member;
@Test
public void testDI() throws Exception {
assertNotNull(member.getRepository());
}
}
위의 코드에 보시면, Context 파일을 명시하고 있지 않습니다. 스프링 2.5에서 도입한 COC중 하나로 생각할 수 있는데요. 만약 테스트 코드를 담고 있는 클래스가 whiteship.MemberTest 면 whiteship/MemberTest-context.xml 이라는 파일을 기본 설정 파일로 읽어오려고 합니다. 물론 명시적으로 설정할 수도 있습니다.
그리고 세터도 없이 @Autowired 애노테이션을 사용하여 Member 객체를 가져오고 있습니다.
위 소스코드를 작성할 때 주의 할 것은.. JUnit 4 라이브러리를 이클립스의 자동완성(컨트롤 + 스페이스)으로 추가하면 안됩니다. 스프링 소스 코드를 받을 때 같이 받은 lib/junit에 있는 jar 파일을 빌드패스에 추가해주어야 합니다.(둘 다 같은 4.4같은데 RunWith 애노테이션의 인자가 다른 것 같습니다.)
따라서 위의 코드를 돌리는데 필요한 Jar 파일은 다음과 같습니다.
- dist 폴더의 spring.jar (스프링 컨테이너 필요함.)
- dist/modules 폴더의 spring-test.jar (SpringJUnit4ClassRunner.class 필요함.)
- lib/jakarta-commons 폴더의 commons-logging.jar (spring.jar 가 종속함.)
- lib/junit 폴더의 junit-4.4.jar (@RunWith, @Test, assertNotNull 필요함.)