개발/백

[JAVA] 스프링 Junit4 @Autowired NullpointException 문제 해결

다당근 2021. 11. 29. 13:12

 

목차

     

     

     

    테스트 클래스 위에 다음과 같은 어노테이션을 붙여주면 된다.

    @RunWith( SpringJUnit4ClassRunner.class )
    @ContextConfiguration(locations= {"classpath*:/spring/*.xml"}) //경로 변경 필수
    @WebAppConfiguration
    public class junitTest {
    	
    }

     

    1. @RunWith ( SpringJunit4ClassRunner.class )

     

    @RunWith는 JUnit 프레임워크의 테스트 실행 방법을 확장할 때 사용하는 어노테이션이다.

    SpringJUnit4ClassRunner라는 JUnit용 테스트 컨텍스트 프레임워크 확장 클래스를 지정해주면 ,

    JUnit이 테스트를 진행하는 중에 테스트가 사용할 애플리케이션 컨텍스트를 만들과 관리하는 작업을 진행해준다.

    <토비의 스프링>

     

    2. @ContextConfiguration(locations={"classpath*:/spring/*.xml"})

     

    @ContextConfiguration은 자동으로 만들어줄 application context의 설정파일위치를 지정한 것이다.

    application context 는 별도의 설정 정보를 참고해 IoC를 적용하여 빈의 생성, 관계 설정 등의 제어 작업을 맡는다.

    본인이 하고 있는 프로젝트에서는 스프링 설정 파일을 spring 폴더 아래 여러 xml 파일로 관리하고 있어 경로를 /spring/*.xml 로 잡았다.

     

    3. @WebAppConfiguration

     

    테스트를 위해 WebApplicationContext 가 로드되어야 함을 알려주는 어노테이션.

    WebApplicationContext 는 DispatcherServlet 에 의해 만들어지며,

    DispatcherServlet 이 직접 사용하는 컨트롤러를 포함한 웹 관련 빈을 등록하는데 사용한다.