弹簧 jUnit 测试属性文件
我有一个jUnit Test,它有自己的属性文件(application-test.properties)和它的spring config文件(application-core-test.xml)。
其中一种方法使用由弹簧配置实例化的对象,即弹簧组件。类中的一个成员从 application.properties 派生其值,这是我们的主属性文件。通过 jUnit 访问此值时,它始终为 null。我甚至尝试将属性文件更改为指向实际属性文件,但这似乎不起作用。
以下是我访问属性文件对象的方式
@Component
@PropertySource("classpath:application.properties")
public abstract class A {
@Value("${test.value}")
public String value;
public A(){
SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
}
public A(String text) {
this();
// do something with text and value.. here is where I run into NPE
}
}
public class B extends A {
//addtnl code
private B() {
}
private B(String text) {
super(text)
}
}
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:META-INF/spring/application-core-test.xml",
"classpath:META-INF/spring/application-schedule-test.xml"})
@PropertySource("classpath:application-test.properties")
public class TestD {
@Value("${value.works}")
public String valueWorks;
@Test
public void testBlah() {
SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
B b= new B("blah");
//...addtnl code
}
}