詳解SpringBoot restful api的單元測試
現(xiàn)在我們來利用Spring Boot來構(gòu)建一個(gè)RestFul API,具體如下:
1.添加Springboot測試注解
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserControllerTest {
}
2.偽造mvc環(huán)境
// 注入Spring 工廠
@Autowired
private WebApplicationContext wac;
//偽造mvc環(huán)境
private MockMvc mockMvc;
@Before
public void setup(){
mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
}
3.引入靜態(tài)方法
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
3.編寫測試方法
@Test
public void whenXXXXSuccess() throws Exception {
//模擬發(fā)送請求
String result =
mockMvc.perform(get("/user") //發(fā)往/user的get請求,可以換成post,put,delete方法執(zhí)行相應(yīng)請求
.param("username","xxx") //get請求時(shí)填寫參數(shù)的位置
.contentType(MediaType.APPLICATION_JSON_UTF8) //utf編碼
.content(content)) //post和put請求填寫參數(shù)的位置
.andExpect(status().isOk())
.andExpect(jsonPath("$.length()").value(3)) //期望的json返回結(jié)果
.andReturn().getResponse().getContentAsString(); //對返回字符串的json內(nèi)容進(jìn)行判斷
log.info(result);
}
這里是具體的jsonpath語法
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
IDEA 插件 mapper和xml互相跳轉(zhuǎn)操作
這篇文章主要介紹了IDEA 插件 mapper和xml互相跳轉(zhuǎn)操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
mybatis,foreach,找不到參數(shù)報(bào)錯(cuò)問題及解決
這篇文章主要介紹了mybatis,foreach,找不到參數(shù)報(bào)錯(cuò)問題及解決,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
如何解決SpringBoot啟動(dòng)時(shí)無法加載配置文件或環(huán)境變量問題
文章主要介紹了在Spring Boot項(xiàng)目中遇到配置文件加載失敗和資源目錄圖標(biāo)異常的問題,并提供了詳細(xì)的解決步驟,解決方法包括在pom.xml文件中添加特定配置,確保資源目錄順序正確,以及注意節(jié)點(diǎn)的正確使用,通過這些步驟,可以有效解決資源加載問題,提高開發(fā)效率2024-12-12
使用Spring Security和JWT實(shí)現(xiàn)安全認(rèn)證機(jī)制
在現(xiàn)代 Web 應(yīng)用中,安全認(rèn)證和授權(quán)是保障數(shù)據(jù)安全和用戶隱私的核心機(jī)制,Spring Security 是 Spring 框架下專為安全設(shè)計(jì)的模塊,具有高度的可配置性和擴(kuò)展性,而 JWT則是當(dāng)前流行的認(rèn)證解決方案,所以本文介紹了如何使用Spring Security和JWT實(shí)現(xiàn)安全認(rèn)證機(jī)制2024-11-11
Mybatis中xml的動(dòng)態(tài)sql實(shí)現(xiàn)示例
本文主要介紹了Mybatis中xml的動(dòng)態(tài)sql實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
Java注解詳解及實(shí)現(xiàn)自定義注解的方法
這篇文章主要介紹了Java注解詳解及實(shí)現(xiàn)自定義注解的方法,本文給大家介紹了jdk中預(yù)定義的一些注解及自定義注解的相關(guān)知識,需要的朋友可以參考下2022-06-06
Java Thread之Sleep()使用方法總結(jié)
這篇文章主要介紹了Java Thread之Sleep()使用方法總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05

