1、引入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
2、配置文件(application.yml)中配置各个属性的值:
myProps: #自定义的属性和值
simpleProp: simplePropValue
arrayProps: 1,2,3,4,5
listProp1:
- name: Solin
value: SolinValue
- name: Tom
value: TomValue
listProp2:
- config1Value1
- config2Value2
mapProps:
key1: value1
key2: value2
3、创建管理配置的实体类:
package Solin.controller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix="myProps",locations = "classpath:application.yml") //接收application.yml中的myProps下面的属性
public class MyProps {
private String simpleProp;
private String[] arrayProps;
private List<Map<String, String>> listProp1 = new ArrayList<Map<String, String>>(); //接收prop1里面的属性值
private List<String> listProp2 = new ArrayList<String>(); //接收prop2里面的属性值
private Map<String, String> mapProps = new HashMap<String, String>(); //接收mapProps里面的属性值
public String getSimpleProp() {
return simpleProp;
}
//String类型的一定需要setter来接收属性值;maps, collections不需要
public void setSimpleProp(String simpleProp) {
this.simpleProp = simpleProp;
}
public List<Map<String, String>> getListProp1() {
return listProp1;
}
public List<String> getListProp2() {
return listProp2;
}
public String[] getArrayProps() {
return arrayProps;
}
public void setArrayProps(String[] arrayProps) {
this.arrayProps = arrayProps;
}
public Map<String, String> getMapProps() {
return mapProps;
}
public void setMapProps(Map<String, String> mapProps) {
this.mapProps = mapProps;
}
}
启动后,这个bean里面的属性就会自动接收配置的值了。
4、单元测试用例:
package Solin.controller;
import java.util.Arrays;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.fasterxml.jackson.core.JsonProcessingException;
import Solin.config.WebAppConfig;
@RunWith(SpringJUnit4ClassRunner.class)
//@SpringBootTest(classes=WebAppConfig.class)// 指定spring-boot的启动类
@SpringApplicationConfiguration(classes = WebAppConfig.class)// 1.4.0 前版本 注意启动类不要搞错了
public class MyPropsTest {
@Autowired
private MyProps myProps;
@Test
public void propsTest() throws JsonProcessingException {
System.out.println("simpleProp: " + myProps.getSimpleProp());
System.out.println("arrayProps: " + Arrays.toString(myProps.getArrayProps()));
System.out.println("listProp1: " + myProps.getListProp1());
System.out.println("listProp2: " + myProps.getListProp2());
System.out.println("mapProps: " + myProps.getMapProps());
}
}
5、测试结果:
simpleProp: simplePropValue
arrayProps: [1, 2, 3, 4, 5]
listProp1: [{name=Solin, value=SolinValue}, {name=Tom, value=TomValue}]
listProp2: [config1Value1, config2Value2]
mapProps: {key1=value1, key2=value2}
6、可以看到,对spring-boot项目进行单元测试是件容易的事儿,需要添加spring-boot-starter-test依赖,然后 使用@RunWith和@SpringBootTest或@SpringApplicationConfiguration(1.4.0过期)注解,然后引入自己要测试的bean,调用指定方法进行测试即可。
转载自:http://blog.csdn.net/clementad/article/details/51970962