복붙노트

[SPRING] 봄 junit 테스트

SPRING

봄 junit 테스트

나는 Maven 봄 프로젝트 (최신 버전)를 가지고 있고 몇 가지 junit 테스트 (최신 버전)를 작성하려고한다.

내가 가지고있는 문제는 내 스프링 콩이 자동으로 실행된다는 것이며, junit 테스트에서 호출 할 때 스프링이 자동 실행되지 않으므로 null 포인터 예외가 발생합니다.

상황이 자동 실행되도록 컨텍스트를로드하려면 어떻게해야합니까?

해결법

  1. ==============================

    1.Spring 레퍼런스 문서의 Testing 장을 공부 했습니까? 다음은 시작해야 할 예입니다.

    Spring 레퍼런스 문서의 Testing 장을 공부 했습니까? 다음은 시작해야 할 예입니다.

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration
    public class MyTest {
    
        @Resource
        private FooService fooService;
    
        // class body...
    }
    

    / src / test / java에있는 com.example.MyTest에 있다면 /src/test/resources/com/example/MyTest-context.xml이 필요합니다. 예외는 당신에게 방법을 보여줄 것입니다.

  2. ==============================

    2.이것은 가능성이 있습니다 :

    이것은 가능성이 있습니다 :

    @RunWith(SpringJUnit4ClassRunner.class)
    // ApplicationContext will be loaded from "/applicationContext.xml"
    // in the root of the classpath
    @ContextConfiguration({"/applicationContext.xml"})
    public class MyTest {
    // class body...
    }
    

    보통 테스트 인프라를 위해 test-applicationContext를 가지고 있지만 좋은 생각이다.

  3. ==============================

    3.테스트 클래스에서는 SpringJUnit4ClassRunner를 사용해야하고 빈을 포함하는 테스트 클래스의 필드에는 @Resource (또는 @Autowired)를 사용해야한다. 스텁을 사용하는 특수한 테스트 컨텍스트 Spring 구성을 고려해야합니다. 그러면 테스트가 실제 단위 테스트가되고 전체 응용 프로그램 컨텍스트에 의존하지 않게됩니다.

    테스트 클래스에서는 SpringJUnit4ClassRunner를 사용해야하고 빈을 포함하는 테스트 클래스의 필드에는 @Resource (또는 @Autowired)를 사용해야한다. 스텁을 사용하는 특수한 테스트 컨텍스트 Spring 구성을 고려해야합니다. 그러면 테스트가 실제 단위 테스트가되고 전체 응용 프로그램 컨텍스트에 의존하지 않게됩니다.

  4. from https://stackoverflow.com/questions/6546871/spring-junit-testing by cc-by-sa and MIT license