当前位置: 首页 > news >正文 网站开发人员的 生活nginx 网站建设 news 2025/10/27 14:56:45 网站开发人员的 生活,nginx 网站建设,青岛市区商场黄页,用php做购物网站视频前言 Web环境模拟测试 企业开发不仅要保障业务层与数据层的功能安全有效#xff0c;也要保障表现层的功能正常。但是我们一般对表现层的测试都是通过postman手工测试的#xff0c;并没有在打包过程中代码体现表现层功能被测试通过。那么能否在测试用例中对表现层进行功能测…前言 Web环境模拟测试 企业开发不仅要保障业务层与数据层的功能安全有效也要保障表现层的功能正常。但是我们一般对表现层的测试都是通过postman手工测试的并没有在打包过程中代码体现表现层功能被测试通过。那么能否在测试用例中对表现层进行功能测试呢答案是可以的我们可以使用MockMvc来实现它。 1、测试类中启动web环境 每一个springboot的测试类上方都会标准SpringBootTest注解而注解带有一个属性叫做webEnvironment。通过该属性就可以设置在测试用例中启动web环境具体如下 SpringBootTest(webEnvironment SpringBootTest.WebEnvironment.RANDOM_PORT) public class BookControllerTest {} 测试类中启动web环境时可以指定启动的Web环境对应的端口springboot提供了4种设置值分别如下 MOCK根据当前设置确认是否启动web环境例如使用了Servlet的API就启动web环境属于适配性的配置DEFINED_PORT使用自定义的端口作为web服务器端口RANDOM_PORT使用随机端口作为web服务器端口NONE不启动web环境 建议大家测试时使用RANDOM_PORT避免项目打包运行时由于端口冲突导致意外现象的出现。 2、测试类中发送请求 单元测试MockMvc 1、mockMvc.perform执行一个请求 2、MockMvcRequestBuilders.get(/user/1)构造一个请求 3、ResultActions.andExpect添加执行完成后的断言 4、ResultActions.andDo添加一个结果处理器表示要对结果做点什么事情比如此处使用MockMvcResultHandlers.print()输出整个响应结果信息。 5、ResultActions.andReturn表示执行完成后返回相应的结果。 MockMvcBuilder是用来构造MockMvc的构造器其主要有两个实现StandaloneMockMvcBuilder和DefaultMockMvcBuilderStandaloneMockMvcBuilder继承了DefaultMockMvcBuilder。直接使用静态工厂MockMvcBuilders创建即可 MockMvcBuilders.webAppContextSetup(WebApplicationContext context)指定WebApplicationContext将会从该上下文获取相应的控制器并得到相应的MockMvc MockMvcBuilders.standaloneSetup(Object... controllers)通过参数指定一组控制器这样就不需要从上下文获取了 MockMvcRequestBuilders主要API MockHttpServletRequestBuilder get(String urlTemplate, Object... urlVariables)根据uri模板和uri变量值得到一个GET请求方式的MockHttpServletRequestBuilder如get(/user/{id}, 1L) MockHttpServletRequestBuilder post(String urlTemplate, Object... urlVariables)同get类似但是是POST方法 MockHttpServletRequestBuilder put(String urlTemplate, Object... urlVariables)同get类似但是是PUT方法 MockHttpServletRequestBuilder delete(String urlTemplate, Object... urlVariables) 同get类似但是是DELETE方法 ResultActions 调用MockMvc.perform(RequestBuilder requestBuilder)后将得到ResultActions通过ResultActions完成如下三件事ResultActions andExpect(ResultMatcher matcher) 添加验证断言来判断执行请求后的结果是否是预期的ResultActions andDo(ResultHandler handler) 添加结果处理器用于对验证成功后执行的动作如输出下请求/结果信息用于调试MvcResult andReturn() 返回验证成功后的MvcResult用于自定义验证/下一步的异步处理(主要是拿到结果进一步做自定义断言) 我们该在测试类中如何发送请求呢具体操作如下 步骤①在测试类中开启web虚拟调用功能通过注解AutoConfigureMockMvc实现此功能的开启。 步骤②定义发起虚拟调用的对象MockMVC通过自动装配的形式初始化对象。 步骤③创建一个虚拟请求对象封装请求的路径并使用MockMVC对象发送对应请求 SpringBootTest(webEnvironment SpringBootTest.WebEnvironment.RANDOM_PORT) AutoConfigureMockMvc public class BookControllerTest {Autowiredprivate MockMvc mockMvc;Testpublic void getBooks() throws Exception {//创建虚拟请求当前访问/books MockHttpServletRequestBuilder requestBuilder MockMvcRequestBuilders.get(/books);//执行对应的请求mvc.perform(requestBuilder);} } 注意访问路径不要写 http://localhost:8080/books因为前面的服务器IP地址和端口使用的是当前虚拟的web环境无需指定仅指定请求的具体路径即可。 另外测试用例如果测试时产生了事务提交就会在测试过程中对数据库数据产生影响进而产生垃圾数据。这个过程不是我们希望发生的如何避免呢 我们只需要在原始测试用例中添加注解Transactional即可实现当前测试用例的事务不提交。当程序运行后只要注解Transactional出现的位置存在注解SpringBootTestspringboot就会认为这是一个测试程序无需提交事务所以也就可以避免事务的提交。 当然这里我们也可以使用h2数据库来做测试具体详情可以查看 SpringBootMockMvcH2 自动化单元测试的示例代码https://download.csdn.net/download/A_aspectJ/88879412?spm1001.2014.3001.5503SpringBootMockMvcH2 自动化单元测试的例代码开发过程总结 总结 在测试类中测试web层接口要保障测试类启动时启动web容器使用SpringBootTest注解的webEnvironment属性可以虚拟web环境用于测试为测试方法注入MockMvc对象通过MockMvc对象可以发送虚拟请求模拟web请求调用过程web虚拟调用可以对本地虚拟请求的返回响应信息进行比对分为响应头信息比对、响应体信息比对、响应状态信息比对。 文章转载自: http://www.morning.stpkz.cn.gov.cn.stpkz.cn http://www.morning.hlmkx.cn.gov.cn.hlmkx.cn http://www.morning.qggxt.cn.gov.cn.qggxt.cn http://www.morning.wqpb.cn.gov.cn.wqpb.cn http://www.morning.webife.com.gov.cn.webife.com http://www.morning.nmfwm.cn.gov.cn.nmfwm.cn http://www.morning.ssfq.cn.gov.cn.ssfq.cn http://www.morning.hkpyp.cn.gov.cn.hkpyp.cn http://www.morning.skrcn.cn.gov.cn.skrcn.cn http://www.morning.baguiwei.com.gov.cn.baguiwei.com http://www.morning.dkqr.cn.gov.cn.dkqr.cn http://www.morning.24vy.com.gov.cn.24vy.com http://www.morning.jwqqd.cn.gov.cn.jwqqd.cn http://www.morning.qwwhs.cn.gov.cn.qwwhs.cn http://www.morning.fgrkc.cn.gov.cn.fgrkc.cn http://www.morning.pmxw.cn.gov.cn.pmxw.cn http://www.morning.lhhdy.cn.gov.cn.lhhdy.cn http://www.morning.mczjq.cn.gov.cn.mczjq.cn http://www.morning.hnpkr.cn.gov.cn.hnpkr.cn http://www.morning.wmfh.cn.gov.cn.wmfh.cn http://www.morning.qszyd.cn.gov.cn.qszyd.cn http://www.morning.pxjp.cn.gov.cn.pxjp.cn http://www.morning.qnxtz.cn.gov.cn.qnxtz.cn http://www.morning.mfcbk.cn.gov.cn.mfcbk.cn http://www.morning.yrlfy.cn.gov.cn.yrlfy.cn http://www.morning.ktfnj.cn.gov.cn.ktfnj.cn http://www.morning.zlnmm.cn.gov.cn.zlnmm.cn http://www.morning.rjmb.cn.gov.cn.rjmb.cn http://www.morning.dbfp.cn.gov.cn.dbfp.cn http://www.morning.ktcrr.cn.gov.cn.ktcrr.cn http://www.morning.bxfy.cn.gov.cn.bxfy.cn http://www.morning.hgfxg.cn.gov.cn.hgfxg.cn http://www.morning.rszwc.cn.gov.cn.rszwc.cn http://www.morning.lpmjr.cn.gov.cn.lpmjr.cn http://www.morning.lthpr.cn.gov.cn.lthpr.cn http://www.morning.prjty.cn.gov.cn.prjty.cn http://www.morning.yrngx.cn.gov.cn.yrngx.cn http://www.morning.xqzrg.cn.gov.cn.xqzrg.cn http://www.morning.tturfsoc.com.gov.cn.tturfsoc.com http://www.morning.zfgh.cn.gov.cn.zfgh.cn http://www.morning.qfwfj.cn.gov.cn.qfwfj.cn http://www.morning.fnfhs.cn.gov.cn.fnfhs.cn http://www.morning.krzrg.cn.gov.cn.krzrg.cn http://www.morning.pggkr.cn.gov.cn.pggkr.cn http://www.morning.gnzsd.cn.gov.cn.gnzsd.cn http://www.morning.lkbdy.cn.gov.cn.lkbdy.cn http://www.morning.i-bins.com.gov.cn.i-bins.com http://www.morning.dbnrl.cn.gov.cn.dbnrl.cn http://www.morning.gydth.cn.gov.cn.gydth.cn http://www.morning.bchhr.cn.gov.cn.bchhr.cn http://www.morning.frpb.cn.gov.cn.frpb.cn http://www.morning.lcbt.cn.gov.cn.lcbt.cn http://www.morning.kjgdm.cn.gov.cn.kjgdm.cn http://www.morning.wxqmc.cn.gov.cn.wxqmc.cn http://www.morning.ydnxm.cn.gov.cn.ydnxm.cn http://www.morning.xfrqf.cn.gov.cn.xfrqf.cn http://www.morning.pxbky.cn.gov.cn.pxbky.cn http://www.morning.mnccq.cn.gov.cn.mnccq.cn http://www.morning.mmhaoma.com.gov.cn.mmhaoma.com http://www.morning.qwlml.cn.gov.cn.qwlml.cn http://www.morning.krfpj.cn.gov.cn.krfpj.cn http://www.morning.tkfnp.cn.gov.cn.tkfnp.cn http://www.morning.tqpds.cn.gov.cn.tqpds.cn http://www.morning.wmnpm.cn.gov.cn.wmnpm.cn http://www.morning.rykx.cn.gov.cn.rykx.cn http://www.morning.cbtn.cn.gov.cn.cbtn.cn http://www.morning.wprxm.cn.gov.cn.wprxm.cn http://www.morning.fpkdd.cn.gov.cn.fpkdd.cn http://www.morning.tyklz.cn.gov.cn.tyklz.cn http://www.morning.mtrrf.cn.gov.cn.mtrrf.cn http://www.morning.hwcgg.cn.gov.cn.hwcgg.cn http://www.morning.dnycx.cn.gov.cn.dnycx.cn http://www.morning.synkr.cn.gov.cn.synkr.cn http://www.morning.ghfmd.cn.gov.cn.ghfmd.cn http://www.morning.rxkq.cn.gov.cn.rxkq.cn http://www.morning.prjns.cn.gov.cn.prjns.cn http://www.morning.dhckp.cn.gov.cn.dhckp.cn http://www.morning.nchsz.cn.gov.cn.nchsz.cn http://www.morning.nqpy.cn.gov.cn.nqpy.cn http://www.morning.dsxgc.cn.gov.cn.dsxgc.cn 查看全文 http://www.tj-hxxt.cn/news/254115.html 相关文章: 未来对网站建设的需求做导师一般去什么网站找素材 搭建邮箱注册网站网站做接口怎么做 免费行情网站排名新乡做网站的公司 企业做电商网站有哪些内容小规模公司需要交哪些税 一般建站需要多少钱win10 做网站服务器吗 宁波公司建设网站网站名词 微信朋友圈广告在哪里做烟台优化网站公司哪家好 免费网站安全检测境外网站 备案 电影网站html模板江苏省建设集团有限公司网站 辽宁省网站制作网站建设需要的文案 花瓣官网设计网站网站建设报价比较 上海设计师网站有哪些wordpress设计主题 莱阳市规划建设局网站响应式网站弊端 印度网站域名还有什么网站可以做面包车拉货 德国服务器网站阿里云 wordpress 权限设置 做婚恋网站报名网站建设价格 郑州专业seo首选湖南网站营销优化开发 做招聘网站用什么代码开发个性logo图案设计 贸易网站有哪些电商平台运营费用预算 国和建设集团网站百度一下首页登录 网站建设经销商wordpress 开发版 视频 郑州建网站企业厦门市建设执业资格注册管理中心网站 自己做个网站多少钱沈阳市和平区网站建设 单页销售型网站网站关键词库怎么做有什么效果 甘肃省铁路投资建设集团有限公司网站福建网站开发公司电话 网站优化需要工具wordpress 修改目录id 彩票网站开发合法吗方便做流程图的网站 网站高端设计公司企业文化vi设计 哪些网站设计好娄底住房和城乡建设部网站 江苏华柯建设发展有限公司网站wordpress主题 反盗版