2012-07-25 2 views
0

웹 프로젝트에서 작업 중이고 응용 프로그램 구성에 대한 경로와 같은 속성 값과 같은 Tomcat의 context.xml에 일부 속성을 정의했습니다. 내 웹 컨테이너 외부에서 실행되는 일부 JUnit 테스트를 작성하려고 할 때 내 문제가 발생합니다. 어떻게 이러한 매개 변수를 정의 할 수 있습니까? 는 (Tomcat 구성 디렉토리에) 내의 context.xml에서, 명확하게하기 위해, 나는이 : Spring에서 contextParameter를 정의하는 방법

<Parameter name="myProperty" value="myValue" override="false"/> 

그리고 봄과

, 나는 그것을 액세스 :

<property name="property" value="#{myProperty}" /> 

하지만 JUnit 테스트를 시작할 때 context.xml이로드되지 않았으므로 속성을 정의하는 다른 방법이 필요합니다. 어떻게하면됩니까? 더 정확히 말해, 우리가 이야기하고있는 context.xml 파일은 Tomcat 서버가 사용하는 파일이며 Spring 스키마를 따르지 않으며 Spring으로 가져올 수 없다고 생각합니다. 나는 이미 SpringJUnit4ClassRunner과 ContextConfiguration 태그를 사용 , 그것은 잘 작동하지만 지금은 내가 :)

을 명확입니다 희망 ...이 ContextParameters을 정의하고 내 매개 변수를 검색하기 위해 톰캣의 행동을 대체/

를 에뮬레이션 할 필요가

+0

[SpringJunit4ClassRunner] (http://static.springsource.org/spring/docs/current/spring-framework-reference/html/testing.html#testcontext-junit4-runner) 컨텍스트를로드하려면 – soulcheck

답변

1

이 같은 것을 사용해보십시오 :

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration("classpath:context.xml") 
public class MyTestClass { 

//put tests here 

} 

편집 : 당신은 또한 컨텍스트 파일의 경로를 지정할 수 있습니다

:

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration("file:src/main/resources/spring/config.xml") 
public class MyTestClass { 

//put tests here 

} 
+0

@ 893을 사용하십시오. 이게 유용하지? –

+0

답해 주셔서 고맙습니다. 문제는 context.xml이 Tomcat 파일이라는 것입니다. 클래스 패스에 간단히 추가하여 참조 할 수는 없습니다. – 893

+0

@ 893 나는 내 대답을 편집했다. –

0

위의 제안을 적용하려면 스프링 테스트 모듈을 사용해야합니다.

컨텍스트 파일을 좋은 방식으로로드 할 수도 있습니다.

ApplicationContext context = new ClassPathXmlApplicationContext("context.xml") 

그리고 이름으로 콩을 움켜 잡으십시오.

+0

첫 글을 편집했습니다. – 893

관련 문제