Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JUNIT中将属性文件作为工厂Bean从yml加载_Java_Spring_Junit - Fatal编程技术网

Java 在JUNIT中将属性文件作为工厂Bean从yml加载

Java 在JUNIT中将属性文件作为工厂Bean从yml加载,java,spring,junit,Java,Spring,Junit,我的yml中有每个平台电视和android的属性列表 我已经创建了一个工厂类,我们在其中提供平台,您将使用引用链接“”获得属性。 但是在运行测试时,属性对象将显示为null。如何从属性文件加载junit中的属性 @Component public class MasterPropertiesFactory { @Autowired private TvProperties tv ; @Autowired private AndroidProperties an

我的yml中有每个平台电视和android的属性列表

我已经创建了一个工厂类,我们在其中提供平台,您将使用引用链接“”获得属性。 但是在运行测试时,属性对象将显示为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 {}    

您应该在代码中修复以下几点:

  • 应该有
    Configuration
    类来创建
    TvProperties
    androidproperty
  • 您应该在
    PageTest
    -
    ContextConfiguration
    中使用该类,或者应该为测试声明自定义
    Configuration
    类以加载属性
  • @ContextConfiguration(classes={TestApp.class,MasterPropertiesFactory.class}
    不是一个好主意,因为它应该包含有关
    配置
    类的信息
  • 对于
    @Autowired
    MasterPropertiesFactory MasterPropertiesFactory;
    您应该在某个地方为此创建bean(首选的方法是在测试
    Conifugration