Я хотел бы провести модульное тестирование класса, который получает конфигурацию, обычно создаваемую аннотацией @Inject из javax.inject.Inject.
Вместо этого я подумал об экземпляре конфигурации в начале теста, вызвав некоторые classes.methods. Это должно быть возможно, так как конструктор класса называется .
вместо
@Inject
@Named ("reportsprops")
protected Configuration reportsprops;
, описанный в META-INF.spring как:
<bean id="reportsprops"
class="org.apache.commons.configuration.PropertiesConfiguration">
<constructor-arg type="java.lang.String"
value="file:${spr.root.dir}/reports.properties" />
<property name="encoding" value="UTF-8" />
<property name="throwExceptionOnMissing" value="true" />
<property name="reloadingStrategy">
<bean
class="org.apache.commons.configuration.reloading.FileChangedReloadingStrategy" />
</property>
</bean>
Я хочу использовать в модульном тесте что-то вроде:
Configuration reportsprops = a_direct_call_of_constructor
or something similar, usable in test without running the server and things
Поскольку конфиг действительно великолепен, мне нужно заполнить его из файла, как его заполняет Spring, без насмешек над сотнями отдельных свойств. Что-то вроде
Beans.createClass (Configuration, beanPropertiesFile);