博物馆网站微信公众号建设,住房和城乡建设部网站打不开,学wordpress要多久,重庆网上房地产网签合同查询目录
properties临时属性测试注入
args临时参数测试注入
bean配置类属性注入#xff08;Import#xff09; SpringBootTest是一个注解#xff0c;用于测试Spring Boot应用程序。它可用于指示Spring Boot测试应用程序的启动点#xff0c;并为测试提供一个可用的Spring应用…目录
properties临时属性测试注入
args临时参数测试注入
bean配置类属性注入Import SpringBootTest是一个注解用于测试Spring Boot应用程序。它可用于指示Spring Boot测试应用程序的启动点并为测试提供一个可用的Spring应用程序上下文。它还提供了自动配置的功能可以将依赖注入到测试类中。
properties临时属性测试注入
测试过程本身并不是一个复杂的过程但是很多情况下测试时需要模拟一些线上情况或者模拟一些特殊情况。如果当前环境按照线上环境已经设定好了例如是下面的配置
servers:ip-address: 192.168.0.1port: 2345dataSize: 8
但是你现在想测试对应的兼容性需要测试如下配置
servers:ip-address: 192.168.0.1port: 2345dataSize: 4 这个时候我们能不能每次测试的时候都去修改源码application.yml中的配置进行测试呢显然是不行的。每次测试前改过来每次测试后改回去这太麻烦了。我们需要在测试环境中创建一组临时属性去覆盖我们源码中application.yml中设定的属性。
这个时候就可以使用注解SpringBootTest添加属性来模拟临时属性
//properties属性可以为当前测试用例添加临时的属性配置
SpringBootTest(properties {servers.dataSiz4})
public class PropertiesAndArgsTest {Value(${servers.dataSiz})private String dataSiz;Testvoid testProperties(){System.out.println(dataSiz);}
}
args临时参数测试注入
启动springboot程序时通过命令行参数也可以设置属性值。测试时也可以进行修改属性
//args属性可以为当前测试用例添加临时的命令行参数
SpringBootTest(args{--test.proptestValue2})
public class PropertiesAndArgsTest {Value(${test.prop})private String msg;Testvoid testProperties(){System.out.println(msg);}
} args属性配置优先于properties属性配置加载。 五种配置的优先级的先后顺序为 1 命令行参数 格式–keyvalue2 Java系统属性配置 格式 -Dkeyvalue3 application.properties4 application.yml5 application.yaml bean配置类属性注入Import
一个spring环境中可以设置若干个配置文件或配置类若干个配置信息可以同时生效。 需求就是在测试环境中再添加一个配置类然后启动测试环境时生效此配置就行了。 Import注解在具体的测试中导入临时的配置例如测试用例方便测试过程且上述配置不影响其他的测试类环境 步骤①在测试包test中创建专用的测试环境配置类不要道java目录添加那样子对源码进行了修改了
Configuration
public class MsgConfig {Beanpublic String msg(){return bean msg;}
}
步骤②在启动测试环境时导入测试环境专用的配置类使用Import注解即可实现
SpringBootTest
Import({MsgConfig.class})
public class ConfigurationTest {Autowiredprivate String msg;Testvoid testConfiguration(){System.out.println(msg);}
}
Import注解在具体的测试中导入临时的配置例如测试用例方便测试过程且上述配置不影响其他的测试类环境
Import注解提供了三种用法
1、Import一个普通类 spring会将该类加载到spring容器中
2、Import一个类该类实现了ImportBeanDefinitionRegistrar接口在重写的registerBeanDefinitions方法里面能拿到BeanDefinitionRegistry bd的注册器能手工往beanDefinitionMap中注册 beanDefinition
3、Import一个类 该类实现了ImportSelector 重写selectImports方法该方法返回了String[]数组的对象数组里面的类都会注入到spring容器当中