詳解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)文章
Java數(shù)據(jù)結(jié)構(gòu)之快速冪的實(shí)現(xiàn)
快速冪是用來解決求冪運(yùn)算的高效方式。本文將詳細(xì)為大家介紹如何利用Java實(shí)現(xiàn)快速冪,以及利用快速冪求解冪運(yùn)算問題,需要的可以參考一下2022-03-03Java動(dòng)態(tài)字節(jié)碼注入技術(shù)的實(shí)現(xiàn)
Java動(dòng)態(tài)字節(jié)碼注入技術(shù)是一種在運(yùn)行時(shí)修改Java字節(jié)碼的技術(shù),本文主要介紹了Java動(dòng)態(tài)字節(jié)碼注入技術(shù)的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08idea導(dǎo)入項(xiàng)目爆紅問題記錄以及解決
這篇文章主要介紹了idea導(dǎo)入項(xiàng)目爆紅問題記錄以及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07JavaWeb項(xiàng)目實(shí)戰(zhàn)之表白墻和在線相冊
這篇文章主要給大家介紹了關(guān)于JavaWeb項(xiàng)目實(shí)戰(zhàn)之表白墻和在線相冊的相關(guān)資料,JavaWeb表白墻是一款基于JavaWeb技術(shù)開發(fā)的表白墻應(yīng)用,用戶可以在上面發(fā)布表白信息,也可以查看其他用戶的表白信息,需要的朋友可以參考下2023-03-03MyBatis中關(guān)于resultType和resultMap的區(qū)別介紹
MyBatis中在查詢進(jìn)行select映射的時(shí)候,返回類型可以用resultType,也可以用resultMap,那么MyBatis中關(guān)于resultType和resultMap的區(qū)別是什么呢?下面小編通過本文給大家解答下2016-09-09mybatis調(diào)用mysql存儲(chǔ)過程并獲取返回值方式
這篇文章主要介紹了mybatis調(diào)用mysql存儲(chǔ)過程并獲取返回值方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08