摘要:可參考本人簡書模擬請求調(diào)用寫在前面實現(xiàn)了對請求的模擬,能夠直接使用網(wǎng)絡(luò)的形式,轉(zhuǎn)換到調(diào)用,這樣使得測試速度更快,不依賴網(wǎng)絡(luò)環(huán)境。
可參考本人簡書:模擬HTTP請求調(diào)用controller
寫在前面MockMvc實現(xiàn)了對Http請求的模擬,能夠直接使用網(wǎng)絡(luò)的形式,轉(zhuǎn)換到Controller調(diào)用,這樣使得測試速度更快,不依賴網(wǎng)絡(luò)環(huán)境。而且提供了一套驗證的工具。
單測代碼如下:
@RunWith(SpringRunner.class) @WebMvcTest(MyController.class) public class MyControllerTest { @Autowired private MockMvc mockMvc; /** * 測試方法 */ private void bindAndUnbindTenantPoiTest() throws Exception { MvcResult mvcResult = mockMvc.perform(post(${"訪問的url"}) .param("${key1}", "${value1}") .param("${key2}", "${value2}") .param("${key3}", "${value3}")) .andDo(print()) // 定義執(zhí)行行為 .andExpect(status().isOk()) // 對請求結(jié)果進(jìn)行驗證 .andReturn(); // 返回一個MvcResult jsonObject = toJsonObject(mvcResult); assert jsonObject.getIntValue("code") == code; // 斷言返回內(nèi)容是否符合預(yù)期 assert message.equals(jsonObject.getString("message")); } }Perform介紹
perform用來調(diào)用controller業(yè)務(wù)邏輯,有post、get等多種方法,具體可以參考利用Junit+MockMvc+Mockito對Http請求進(jìn)行單元測試
參數(shù)Param介紹通過param添加http的請求參數(shù),格式是K-V,一個參數(shù)一個參數(shù)添加或者通過params添加MultiValueMap
/** * Add a request parameter to the {@link MockHttpServletRequest}. *寫在后面If called more than once, new values get added to existing ones. * @param name the parameter name * @param values one or more values */ public MockHttpServletRequestBuilder param(String name, String... values) { addToMultiValueMap(this.parameters, name, values); return this; } /** * Add a map of request parameters to the {@link MockHttpServletRequest}, * for example when testing a form submission. *
If called more than once, new values get added to existing ones. * @param params the parameters to add * @since 4.2.4 */ public MockHttpServletRequestBuilder params(MultiValueMap
params) { for (String name : params.keySet()) { for (String value : params.get(name)) { this.parameters.add(name, value); } } return this; }
還有個坑就是使用注解的時候,看看注解之間是否有重疊,否則會報錯。如果同時使用@WebMvcTest @Configuration就錯了。具體可以查看注解源碼
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/73695.html
摘要:本地也可以輕松模擬跨域請求,以及解決跨域請求的方式輕松實現(xiàn)本地服務(wù)器跨域請求請求接口,其實它們都在相同的本地服務(wù)器目錄下以訪問頁面,可是這個頁面調(diào)用的接口地址是與域名不同,也即跨域解決跨域請求服務(wù)器端設(shè)置這樣就能輕松實現(xiàn)跨域請求 本地也可以輕松模擬跨域請求,以及解決跨域請求的方式 1、輕松實現(xiàn)本地服務(wù)器跨域請求 web.html請求接口json.json,其實它們都在相同的本地服務(wù)器目...
摘要:二適配器模式概念適配器模式是一種結(jié)構(gòu)型模式,它的思想是將一個接口轉(zhuǎn)化為另一個接口。適配器模式包含四個角色對象定義所需要的方法請求者負(fù)責(zé)使用對象定義的方法來做具體的處理被適配者以持有方法的角色適配器使用被適配者的方法來滿足對象的需要。 一、結(jié)構(gòu)型設(shè)計模式 1、概念結(jié)構(gòu)型設(shè)計模式描述如何將類或者對象結(jié)合在一起形成更為復(fù)雜,功能更為強(qiáng)大的結(jié)構(gòu)。 2、分類(1)類結(jié)構(gòu)模型:這種結(jié)構(gòu)模型關(guān)心類的...
摘要:簡介模塊為單元測試提供模塊定義加載注入等支持。為使用了的應(yīng)用提供單元測試的偽后臺。根據(jù)提示進(jìn)行設(shè)置即可。將該文件保存為,測試時需按順序?qū)y試項目文件及依賴文件引入。最后在請求后執(zhí)行就會立即執(zhí)行完成請求。參考官方單元測試學(xué)習(xí)筆記 Angular-mock簡介 Angular-mock模塊為angular單元測試提供模塊定義、加載、注入等支持。輔助Karma、Jasmine等JS測試工具來...
摘要:的框架用于解決上述提到的問題,基于模型,可以幫助開發(fā)人員構(gòu)建靈活易擴(kuò)展的應(yīng)用。在這一章中,將專注于構(gòu)建該應(yīng)用的層,創(chuàng)建控制器和顯示,以及處理用戶注冊的表單。類有兩個靜態(tài)接口,代表兩種模擬服務(wù)的方式獨立測試和集成測試。 主要內(nèi)容 將web請求映射到Spring控制器 綁定form參數(shù) 驗證表單提交的參數(shù) 寫在前面:關(guān)于Java Web,首先推薦一篇文章——寫給java web一年左右...
摘要:使用模擬好后端數(shù)據(jù)之后模擬數(shù)據(jù)的使用參考,就需要嘗試請求加載數(shù)據(jù)了。數(shù)據(jù)請求選擇了,現(xiàn)在都推薦使用。規(guī)定要發(fā)送到服務(wù)器的數(shù)據(jù)。布爾值,表示請求是否異步處理。要求為類型的參數(shù),請求成功后調(diào)用的回調(diào)函數(shù)。在一個中重寫回調(diào)函數(shù)的字符串。 使用Mock模擬好后端數(shù)據(jù)之后(Mock模擬數(shù)據(jù)的使用參考:https://segmentfault.com/a/11...),就需要嘗試請求加載數(shù)據(jù)了。數(shù)...
閱讀 1315·2023-04-26 01:28
閱讀 2065·2021-11-08 13:28
閱讀 2316·2021-10-12 10:17
閱讀 2280·2021-09-28 09:46
閱讀 4141·2021-09-09 09:33
閱讀 3719·2021-09-04 16:40
閱讀 1077·2019-08-29 15:21
閱讀 2689·2019-08-26 17:17