日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

springboot 系列教程十:springboot单元测试

發(fā)布時(shí)間:2023/12/31 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springboot 系列教程十:springboot单元测试 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

單元測(cè)試


springboot 支持多種方式的單元測(cè)試,方便開(kāi)發(fā)者測(cè)試代碼,首先需要在 pom 文件中添加 starter

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope> </dependency>

接著開(kāi)發(fā)一個(gè)測(cè)試類(lèi)就可以其實(shí)

@RunWith(SpringRunner.class) @SpringBootTest public class TestApplication {@AutowiredUserDao dao;@Testpublic void test(){System.err.println(dao.findAll());} }

測(cè)試結(jié)果如下圖:

由此可見(jiàn),我們也是可以在測(cè)試類(lèi)里面注入 service、dao 等組件

除了這些常規(guī)的測(cè)試,springboot 也提供了 MockMvc,可以用來(lái)方便的測(cè)試 controller 層,我 controller 層代碼如下:

@RestController public class UserController {@AutowiredUserDao dao;//查詢數(shù)據(jù),并且返回給頁(yè)面顯示@RequestMapping("/index")public String index() {System.out.println(dao.findAll());return "hello world";}@RequestMapping("/getUser")public String getUser(String id, String name) {System.out.println("傳入的參數(shù)id為:" + id + "---" + name);return "ok";} }

接下來(lái)我們寫(xiě)一個(gè)測(cè)試類(lèi):

@RunWith(SpringRunner.class) @SpringBootTest public class TestController {@AutowiredWebApplicationContext webApplicationContext;private MockMvc mvc;@Beforepublic void init(){System.out.println(111);mvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();}/*** 1、mockMvc.perform執(zhí)行一個(gè)請(qǐng)求。* 2、MockMvcRequestBuilders.get("/XXX")構(gòu)造一個(gè)請(qǐng)求。* 3、ResultActions.param添加請(qǐng)求傳值* 4、ResultActions.accept(MediaType.APPLICATION_JSON)設(shè)置返回類(lèi)型* 5、ResultActions.andExpect添加執(zhí)行完成后的斷言。* 6、ResultActions.andDo添加一個(gè)結(jié)果處理器,表示要對(duì)結(jié)果做點(diǎn)什么事情* 比如此處使用MockMvcResultHandlers.print()輸出整個(gè)響應(yīng)結(jié)果信息。* 5、ResultActions.andReturn表示執(zhí)行完成后返回相應(yīng)的結(jié)果。*/@Testpublic void test1() throws Exception{mvc.perform(MockMvcRequestBuilders.get("/index").accept(MediaType.APPLICATION_JSON)).andExpect(MockMvcResultMatchers.status().isOk()).andDo(MockMvcResultHandlers.print()).andReturn();}//帶參數(shù)測(cè)試@Testpublic void test2() throws Exception{mvc.perform(MockMvcRequestBuilders.get("/getUser").param("id","1001","admin").accept(MediaType.APPLICATION_JSON)).andExpect(MockMvcResultMatchers.status().isOk()).andDo(MockMvcResultHandlers.print()).andReturn();} }

測(cè)試結(jié)果

完整結(jié)果:

MockHttpServletRequest:HTTP Method = GETRequest URI = /getUserParameters = {id=[1001, admin]}Headers = [Accept:"application/json"]Body = <no character encoding set>Session Attrs = {}Handler:Type = com.bdqn.zmj.controller.UserControllerMethod = public java.lang.String com.bdqn.zmj.controller.UserController.getUser(java.lang.String,java.lang.String)Async:Async started = falseAsync result = nullResolved Exception:Type = nullModelAndView:View name = nullView = nullModel = nullFlashMap:Attributes = nullMockHttpServletResponse:Status = 200Error message = nullHeaders = [Content-Type:"application/json;charset=UTF-8", Content-Length:"2"]Content type = application/json;charset=UTF-8Body = okForwarded URL = nullRedirected URL = nullCookies = []

測(cè)試類(lèi)里面的這些測(cè)試代碼,我相信是個(gè)寫(xiě)過(guò)基礎(chǔ) web 的人員都能看懂吧!!!!

轉(zhuǎn)載于:https://my.oschina.net/zhoumj/blog/3040139

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的springboot 系列教程十:springboot单元测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。