Более простой способ - использовать org.springframework.beans.factory.config.PropertyPlaceholderConfigurer вместо явного извлечения свойств из контекста приложения Spring.PropertyPlaceholderConfigurer внедряет ваш компонент с указанными вами свойствами.Тогда вам вообще не нужен Mockito, в тесте вы устанавливаете значение свойства в Controller равным тому, что вы хотите.
Таким образом, вы настраиваете конфигуратор в контексте приложения xml:
<context:property-placeholder
location="file:${catalina.base}/webapps/myProperties.properties"/>
и добавьте некоторую конфигурацию для вашего контроллера (я ожидаю, что есть способ сделать это с аннотациями, но не знаю):
<bean id="whateverMyControllerIdIs" class="com.initech.foobar.MyControllerImpl">
<property name="quux"><value>${myProperty}</value></property>
</bean>
, где у контроллера есть переменная экземпляракоторый вы хотите заполнить свойством, с помощью установщика, например:
String quux;
public void setQuux(String quux) {this.quux = quux;}
Только что увидел сообщение в блоге об улучшениях в Spring 3.1 , вот новый бесплатный способ xml сделатьэто:
@Configuration
@PropertySource("classpath:/com/myco/app.properties")
public class AppConfig {
@Autowired
Environment env;
@Bean
public TestBean testBean() {
TestBean testBean = new TestBean();
testBean.setName(env.getProperty("testbean.name"));
return testBean;
}
}