Я не писал модульное или интеграционное тестирование, но сейчас пытаюсь. У меня проблемы с настройкой среды.
У меня есть контекст приложения в WEB-INF / applicationContext * .xml
и в моем applicationContext.xml он содержит ссылку на файл свойств для пользователя / прохода БД, хоста LDAP и т. д.
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>/WEB-INF/spring-config/dev.properties</value>
</list>
</property>
</bean>
У меня есть другие свойства для log4j config (diff config для DEV / Staging / Production). ${webapp.root}
определяется в web.xml
<!-- log4j setting -->
<bean id="log4jInitialization" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetClass" value="org.springframework.util.Log4jConfigurer" />
<property name="targetMethod" value="initLogging" />
<property name="arguments">
<list>
<value>${webapp.root}/${log4j.properties.location}</value>
</list>
</property>
</bean>
А теперь я пытаюсь поместить в тестовый класс следующее.
@Override
protected String[] getConfigLocations() {
return new String[]{
"file:trunk/code/web/WEB-INF/applicationContext.xml",
};
}
Это правильно ссылается на мой xml, но все свойства испорчены.
Я хочу знать следующее:
- Есть ли способ правильно настроить тестовый класс? Если нет, я должен переместить эти классы?
- Как мне настроить Log4j, если есть ссылка на webroot, которая существует только в контейнере ?!
- Какова лучшая практика расположения конфигураций Spring?
Пожалуйста, сообщите
Спасибо