springboot中的junit單元測試
前言
Junit是一個Java語言的單元測試框架,被開發者用於實施對應用程式的單元測試,加快程式編制速度,同時提高編碼的質量。是一個在發展,現在已經到junit5,在javaEE開發中與很多框架相整合,使得開發者很方便。
Junit常用註解:
- @Before:初始化方法
- @After:釋放資源
- @Test:測試方法,在這裡可以測試期望異常和超時時間
- @Ignore:忽略的測試方法
- @BeforeClass:針對所有測試,只執行一次,且必須為static void
- @AfterClass:針對所有測試,只執行一次,且必須為static void
- @RunWith:指定使用的單元測試執行類
Junit測試用例執行順序:
@BeforeClass ==> @Before ==> @Test ==> @After ==> @AfterClass
過程:就是先載入模擬的環境,再進行測試。
測試準備
依賴版本(不同版本存在一些差異)
- junit 4.12
- spring-test 4.3.6
- spring-boot-test 1.5.1
新增依賴(必須)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId >
<version> 1.5.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.6.RELEASE</version>
</dependency>
<dependency >
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version> 4.12</version>
</dependency>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
編輯器(非必須)
IntellijIDEA
測試程式碼
測試程式碼如下:
import cn.yjxxclub.springboot.entity.Member;
import cn.yjxxclub.springboot.mapper.MemberMapper;
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.boot.test.web.client.TestRestTemplate;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Author: 遇見小星
* Email: [email protected]
* Date: 17-6-16
* Time: 下午12:18
* Describe: member應用測試類
*/
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class MemberTest {
/**
* Spring RestTemplate的便利替代。你可以獲取一個普通的或傳送基本HTTP認證(使用使用者名稱和密碼)的模板
* 這裡不使用
*/
@Autowired
private TestRestTemplate testRestTemplate;
@Autowired
MemberMapper memberMapper;
/**
* 2017-06-16 14:08:09.884 INFO 13803 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} inited
size:5
-----測試完畢-------
2017-06-16 14:08:09.955 INFO 13803 --- [ Thread-4] ationConfigEmbeddedWebApplicationContext : Closing org.springframework.boot[email protected]fd07cbb: startup date [Fri Jun 16 14:08:04 CST 2017]; root of context hierarchy
*/
@Test
public void test(){
Map<String,Object> map = new HashMap();
map.put("start",0);
map.put("size",8);
List<Member> list = memberMapper.list(map);
System.out.println("size:"+list.size());
System.out.println("-----測試完畢-------");
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
程式碼說明
- @RunWith 是junit提供的,前言已經說了
- SpringRunner是spring-test提供的測試執行單元類(SpringJUnit4ClassRunner的新名字)
- @SpringBootTest is saying “bootstrap with Spring Boot’s support”,類似springboot程式的測試引匯入口
具體請看spring.io解釋:
後記
- 在springboot1.4.1以前的版本時候,網上用如下載入方式(這個方式筆者沒試過,因為是aliyun的依賴庫1.4.1以前的已經不支援了)
@RunWith(SpringRunner.class)
@SpringApplicationConfiguration(classes = SpringBootSampleApplication.class)
public class MemberTest {
- 1
- 2
- 3
- 在spring的其他專案中一般載入是
@RunWith(SpringRunner.class)
@ContextConfiguration(locations={"classpath:spring-servlet.xml", "classpath:spring-dao-test.xml", "classpath:spring-service-test.xml"})
public class MemberTest {
- 1
- 2
- 3
- 4
- spring-boot-test還提供@DataJpaTest,@JsonTest,@JdbcTest註解,非常方便。
- 不管spring提供的有多方便,還是開始說的那句話:先載入模擬的環境,再進行測試
相關推薦
springBoot dubbo junit 單元測試
依賴 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version> 4.12</versi
SpringBoot使用Junit單元測試
SpringBoot + mybatis 開發工具:IntelliJ IDEA 1.pom.xml 一般使用idea新建一個SpringBoot web專案時,一般都會自動引入此依賴,如果沒有,請手動引入。  
Spring Boot---(11)SpringBoot使用Junit單元測試
摘要:本文詳細的記錄了SpringBoot如何結合Junit寫測試用例,如何執行,打包執行,忽略執行等操作,SpringBoot內建了Junit測試元件,使用很方便,不用再單獨引入其他測試元件。 演示環境: SpringBoot + mybatis 開發工具:IntelliJ IDEA
【SpringBoot】Junit單元測試遇到的一些問題
情況 ①:不能有返回值@Controller public class FileControllerTest{ @Autowired private FileController fileController; @Test public S
SpringBoot的Junit單元測試
最近做專案搭建的是springboot框架,springboot搭建的辛酸淚就不多說了,然而我們做專案單元測試是少不了的,然而這springboot專案怎麼搞單元測試?我呢個去!摸索了半個小時終
SpringBoot開發Junit單元測試方法
最近在做基於SSM框架的開發,使用SpringBoot代替了SpringMVC,怎麼使用Junit單元測試呢? 首先在該服務的pom檔案中新增支援junit的依賴: 然後在src/test/java 目錄下新增一個父類,用來setup WebApplicationCo
springboot中的junit單元測試
前言 Junit是一個Java語言的單元測試框架,被開發者用於實施對應用程式的單元測試,加快程式編制速度,同時提高編碼的質量。是一個在發展,現在已經到junit5,在javaEE開發中與很多框架相整合,使得開發者很方便。 Junit常用註解: @Before:初始化
Junit 單元測試在 intelliJ IDEA 中的安裝
repo setting 進入 安裝 junit sta rain pos 每次 1.為什麽使用Junit我們都知道,main 方法是一個程序的入口,通常來說,沒有main方法,程序就無法運行。我們經常會寫一些class文件(如下圖所示),他們並沒有自己的main方法。那麽
SpringBoot入門十,新增junit單元測試
SpringBoot使用junit非常簡單,我們來看一下,首先說明,這裡使用的是springboot2.0.4的版本 一.pom.xml檔案開啟springboot測試包 <dependency> <groupId>org.springframework.boot
Junit單元測試+aop+spring+執行緒池,在進行Junit測試時切面中執行緒池內呼叫的方法不執行
一、問題背景: 寫了一個切面,指向某service包下的所有類及方法,當該service包下方法被呼叫時切面執行,切面中用了執行緒池ExecutorService pool = Executors.newFixedThreadPool(5);執行緒池內呼叫了dao層的方法。 二、問題描述:單
SpringBoot專案,使用MockMvc做controller類的JUNIT單元測試
package hello; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.t
Spring mvc 之Junit 單元測試 Controller中方法
Springmvc 之Junit 單元測試 1. 首先引入測試的jar包。 1.1因為我用的ide是eclipse,現只介紹eclipse中junit的使用。首先引用eclipse中自帶的junit, 方法: 右鍵專案—>proper
在JUnit單元測試中獲取bean
一、使用註解@Autowired注入bean package test; import java.util.List; import org.junit.Test; import org.juni
Myeclipse中進行JUnit單元測試
最近學習了在myeclipse中進行單元測試,寫點東西總結總結。 JUnit單元測試: 測試物件為一個類中的方法。 juint不是javase中的部分,所以必須匯入jar包,但是myeclips
IDEA中建立單元測試過程 JUnit
1、在src同級別下創意一個test目錄2、右鍵這個test資料夾,設定為測試專用資料夾,然後在在下面建立一個java目錄,根據你的需求,多級建目錄3、選擇一個類 比如xxxServiceImpl, xxDaoImpl然後郵件,選擇goto -- test4、建立一個新的5、
關於junit單元測試中的注入錯誤
之前寫的一個專案,在做單元測試的時候,用了service來儲存資料,然後就發現了一個錯誤:spring的注入錯誤,我在service類上加了component並且在spring的component-scan也配置了相應的路徑,要注入的東西也都加了@Resource,在測試
JUnit單元測試中的setUpBeforeClass()、tearDownAfterClass()、setUp()、tearDown()方法小結
編寫JUnit單元測試的時候,會用到setUpBeforeClass()、tearDownAfterClass()、setUp()、tearDown()這四個方法,例如用eclipse新建一個junit test case的時候,就會有如下圖1的視窗讓你去選擇使用哪些方
【解決】Junit單元測試中出現的報錯
at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) at java.lang.ClassLoader.de
突然發現junit單元測試報錯竟然與類中的有參構造有關
java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=test1], {ExactMatcher:fDisplayName=test1(com.test.User)], {LeadingIdentifierMatche
【Android進階】Junit單元測試環境搭建以及簡單有用
rar theme 選擇 http 技術分享 才幹 ack package family 單元測試的目的 首先。Junit單元測試要實現的功能,就是用來測試寫好的方法是否可以正確的運行,一般多用於對業務方法的測試。 單元測試的環境配置 1.在Andro