【发布时间】:2019-11-12 11:54:02
【问题描述】:
我的 yml 中有每个平台电视和 android 的属性列表
我创建了一个我们提供平台的工厂类,您将使用引用链接“https://andrewzc.com/loading-configuration-properties-in-spring-boot-test/”获得属性。 但是在运行测试时,属性对象是 null 。如何从属性文件中加载junit中的属性?
@Component
public class MasterPropertiesFactory {
@Autowired
private TvProperties tv ;
@Autowired
private AndroidProperties android ;
public MasterPropertiesClass getProperty(String platform){
if(platform.equals("tv")){
return tv;
}else if(platform.equals("android")){
return android;
}
}
}
现在我正在编写一个 junit 来读取这些属性,但是在运行测试 getPaginatedContent 时它会以 null 的形式出现。
//PageTest.java
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = {TestApp.class ,MasterPropertiesFactory.class }, initializers = ConfigFileApplicationContextInitializer.class)
class PageTest {
@Autowired
MasterPropertiesFactory masterPropertiesFactory;
@Test
void getPaginatedContent() {
Assert.assertNotNull(masterPropertiesFactory);
}
}
// TestApp.java
@EnableAutoConfiguration
@EnableConfigurationProperties(value = {MasterPropertiesFactory.class })
public class TestApp {}
【问题讨论】: