스프링 mvc 애플리케이션의 컨트롤러에 대한 통합 테스트를 작성하려고한다. 컨트롤러는 서비스 클래스를 호출하여 dao를 호출하여 저장소에서 데이터를 읽고 쓸 수 있습니다. DAO는 일부 구성을 조회해야합니다. 구성 bean은 WEB-INF/applicationContext.xml에 정의됩니다.내부적으로 ContextLoader.getCurrentWebApplicationContext()에 의존하는 Spring MVC 애플리케이션의 Junit 테스트를 작성한다.
나는이 같은 것을 사용하고 있습니다.
구성 설정 = (구성) ContextLoader.getCurrentWebApplicationContext()의 getBean ("설정");
비공개 String namespace = config.getProperty ("someproperty");
속성은 사육사에 저장되므로 스프링의 속성 관리 아티팩트를 사용하지 않습니다.
JUnit 테스트를 실행하는 동안 ContextLoader.getCurrentWebApplicationContext()는 항상 null을 반환합니다.
지금까지 다음과 같은 방법 살펴 보았다:
1. 테드 영의 접근 방식 (스프링 MVC 통합 테스트를위한 단지 구글 검색 테드 젊은)
2. https://github.com/SpringSource/spring-test-mvc
3.이 사이트 .. 질문/8464919/단위 테스트 - 어 - 서블릿은 - 그 - 따라 -에 - 스프링 - webapplicationcontextutils-getre
4. 셀레늄/jWebUnit을 5. http://confluence.highsource.org/display/Hifaces20/Hifaces20+Testing+package+-+testing%2C+tracing+and+debugging+web+applications+with+Jetty
1
이 문제가 해결되지 않습니다. WebApplicationContext가 null로 유지됨
WebApplicationContext에 대한 지원이 봄 3.2에서 가능함을 의미하는 2 가지 상태가 있습니다.
3.이 점을 이해하지 못합니다. 어디에서 testApplicationContext 및 getServletContext()를 가져 옵니까?
4. 완전히 블랙 박스 테스트이므로이 방법을 사용하고 싶지 않습니다.
5. 현재 5를보고 있습니다. 그러나 서블릿 컨테이너를 시작해야합니다. 다른 대안이 없습니까?
제공할만한 도움을 주셔서 감사합니다. 기본 ContextLoader를 정확히 봄 ContextLoader를가 작동 한
@Ted 젊은 SO는 제가 saying.With 로더 = MockWebApplicationContextLoader 무엇 완료하는 것을 허용하지 않았다
감사 PixalSoft
, 그것은 사용할 수 안된다 webapp이 servletcontainer에 의해 초기화 될 때 뭔가 특별한 것이 있습니까? MockWebApplicationContextLoader에 대한 핸들을 얻는 것이 필요합니까? configton 객체를 삽입하는 것은 싱글 톤 객체에 대해 작동합니다. 그러나 모든 것이 싱글 톤일 수는 없습니다. 모든 생성자에서 구성 객체를 전달하는 것은 너무 지루한 것처럼 들립니다. 지금은 setter 메소드를 통해 autowired 된 정적 설정 객체를 가진 클래스를 만들었습니다. ApplicationContextAware.Many thx
안녕하세요. 답장을 보내 주셔서 감사합니다. 우리는 분산 환경에 있기 때문에 등록 정보 파일에 등록 정보를 저장할 수 없으며 그 이유 때문에 사육사에 등록 정보를 저장해야합니다. 또한 ContextLoader.getCurrentWebApplicationContext()를 사용하면 응용 프로그램이 유닛 테스트를받지 못하게 될 것이라고 생각하지 않습니다. – user1373927