本文章來自【知識林】
在Springboot開發(fā)過程中會經(jīng)常用到單元測試霍骄,相對寫Controller而言蜈彼,單元測試更為簡單方便终娃。
本例子的測試主要是通過單元測試的方式實(shí)現(xiàn)上一篇文章《Springboot 之 自定義配置文件及讀取配置文件》中的測試服傍。
在pom.xml
中引入Maven依賴包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
讀取核心配置文件
application.properties
配置文件內(nèi)容如下:
server.port=9090
test.msg=Hello World Springboot!
- 創(chuàng)建測試類
所有測試類均放在src/test
目錄下卷雕,這里創(chuàng)建MyTest.java
文件:
package com.zslin;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.env.Environment;
import org.springframework.test.context.junit4.SpringRunner;
/**
* Created by 鐘述林 393156105@qq.com on 2016/10/18 11:25.
*/
@SpringBootTest
@RunWith(SpringRunner.class)
public class MyTest {
@Value("${test.msg}")
private String msg;
@Test
public void testCoreConfig() {
System.out.println(msg);
}
@Autowired
private Environment env;
@Test
public void testCoreConfig2() {
System.out.println(env.getProperty("test.msg"));
}
}
注意
1节猿、 要讓一個普通類變成一個單元測試類只需要在類名上加入@SpringBootTest
和@RunWith(SpringRunner.class)
兩個注釋即可。
2漫雕、 在測試方法上加上@Test
注釋滨嘱。
運(yùn)行testCoreConfig
和testCoreConfig2
方法后均可得到:Hello World Springboot!
讀取自定義配置文件
- 創(chuàng)建配置文件
在resources/config
依然創(chuàng)建名為my-web.properties
的配置文件,內(nèi)容如下:
web.name=zslin
web.version=V 1.0
web.author=393156105@qq.com
- 創(chuàng)建配置文件管理類
package com.zslin.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* Created by 鐘述林 393156105@qq.com on 2016/10/18 11:44.
*/
@ConfigurationProperties(locations = "classpath:config/my-web.properties", prefix = "web")
@Component
public class MyConfig {
private String name;
private String version;
private String author;
public String getAuthor() {
return author;
}
public String getName() {
return name;
}
public String getVersion() {
return version;
}
public void setAuthor(String author) {
this.author = author;
}
public void setName(String name) {
this.name = name;
}
public void setVersion(String version) {
this.version = version;
}
}
和上一篇文檔中的沒什么兩樣浸间。
- 創(chuàng)建測試類
package com.zslin;
import com.zslin.config.MyConfig;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
/**
* Created by 鐘述林 393156105@qq.com on 2016/10/18 11:44.
*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class MyConfigTest {
@Autowired
private MyConfig myConfig;
@Test
public void testConfig() {
System.out.println("webName: "+myConfig.getName()+
", webVersion: "+ myConfig.getVersion()+", webAuthor: "+myConfig.getAuthor());
}
}
運(yùn)行testConfig
將得到結(jié)果:webName: zslin, webVersion: V 1.0, webAuthor: 393156105@qq.com
示例代碼:https://github.com/zsl131/spring-boot-test/tree/master/study03
本文章來自【知識林】