2012-07-25 3 views
0

Я работаю над веб-проектом, и я определил некоторые свойства в context.xml моего Tomcat, как путь, значение свойств для конфигурации приложения. Моя проблема возникает, когда я хочу написать несколько тестов JUnit, которые запускаются за пределами моего веб-контейнера, как я могу определить эти параметры? Чтобы было ясно, в моем context.xml (в директории конфигурации Tomcat), у меня есть:Как определить contextParameter весной

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

И весной, я к нему доступ:

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

Но когда я запускаю тест JUnit , context.xml не загружен, мне нужен другой способ определения свойства. Как я могу это сделать? Чтобы быть более точным, файл context.xml, о котором мы говорим, является файлом, используемым моим сервером Tomcat, он не следует схеме Spring, и я думаю, что я не могу «импортировать» его в Spring. я уже использую SpringJUnit4ClassRunner и ContextConfiguration тег, он отлично работает, но теперь, мне нужно, чтобы эмулировать/заменить поведение Tomcat, чтобы определить этот 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 

} 

EDIT:

Вы также можете указать путь к файлу контекста:

@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

Смежные вопросы