Spring Boot 2.X 快速集成單元測試解析
一、實(shí)現(xiàn)原理
使用MockMvc發(fā)起請求,然后執(zhí)行API中相應(yīng)的代碼,在執(zhí)行的過程中使mock模擬底層數(shù)據(jù)的返回,最后結(jié)果驗(yàn)證。
二、常用注解介紹
@SpringBootTest是SpringBoot的一個(gè)用于測試的注解,通過SpringApplication在測試中創(chuàng)建ApplicationContext。
@AutoConfigureMockMvc是用于自動(dòng)配置MockMvc。
@RunWith在JUnit中有很多個(gè)Runner,他們負(fù)責(zé)調(diào)用你的測試代碼,每一個(gè)Runner都有各自的特殊功能,你要根據(jù)需要選擇不同的Runner來運(yùn)行你的測試代碼。
@Before在每個(gè)測試方法前執(zhí)行,一般用來初始化方法。
@After在每個(gè)測試方法后執(zhí)行,在方法執(zhí)行完成后要做的事情。
三、主要代碼
引入測試jar包
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
測試類中添加注解和測試代碼
package com.example.helloSpringBoot;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {HelloSpringBootApplication.class})
@AutoConfigureMockMvc //測試接口用
public class HelloControllerTest {
private static final Logger log = LoggerFactory.getLogger(HelloControllerTest.class);
@Before
public void testBefore(){
log.info("測試前");
}
@After
public void testAfter(){
log.info("測試后");
}
@Autowired
private MockMvc mockMvc;
/**
* 測試 /mockTest
*
*
*/
@Test
public void mockTest()throws Exception{
MvcResult mvcResult=mockMvc.perform(MockMvcRequestBuilders.get("/mockTest")).
andExpect(MockMvcResultMatchers.status().isOk()).andReturn();
int status=mvcResult.getResponse().getStatus();
//打印出狀態(tài)碼,200就是成功
log.info("狀態(tài)碼="+status);
Assert.assertEquals(200,status);
}
}
運(yùn)行mockTest
運(yùn)行成功后截圖如下:

上述三步操作完成后即可實(shí)現(xiàn)對API(Controller)測試,有問題歡迎留言溝通哦!
完整源碼地址:https://github.com/suisui2019/helloSpringBoot
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Zookeeper如何實(shí)現(xiàn)分布式服務(wù)配置中心詳解
Zookeeper在實(shí)際使用場景很多,比如配置中心,分布式鎖,注冊中心等,下面這篇文章主要給大家介紹了關(guān)于Zookeeper如何實(shí)現(xiàn)分布式服務(wù)配置中心的相關(guān)資料,需要的朋友可以參考下2021-11-11
利用spring?boot+WebSocket實(shí)現(xiàn)后臺主動(dòng)消息推送功能
目前對于服務(wù)端向客戶端推送數(shù)據(jù),常用技術(shù)方案有輪詢、websocket等,下面這篇文章主要給大家介紹了關(guān)于利用spring?boot+WebSocket實(shí)現(xiàn)后臺主動(dòng)消息推送功能的相關(guān)資料,需要的朋友可以參考下2022-04-04
SpringBoot+jpa配置如何根據(jù)實(shí)體類自動(dòng)創(chuàng)建表
這篇文章主要介紹了SpringBoot+jpa配置如何根據(jù)實(shí)體類自動(dòng)創(chuàng)建表,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
如何把第三方服務(wù)注冊到spring項(xiàng)目容器中
這篇文章主要為大家介紹了如何把第三方服務(wù)注冊到spring項(xiàng)目容器中,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
jdbc+jsp實(shí)現(xiàn)簡單員工管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了jdbc+jsp實(shí)現(xiàn)簡單員工管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02
基于Java實(shí)現(xiàn)簡單的身材計(jì)算程序
這篇文章主要為大家詳細(xì)介紹了如何利用Java實(shí)現(xiàn)簡單的身材計(jì)算程序,可以計(jì)算身體的體脂率以及BMI數(shù)值等,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-12-12

