当前位置: 首页 > news >正文

用dw制作影视网站怎样做青岛官网seo方法

用dw制作影视网站怎样做,青岛官网seo方法,淘宝网站如何做虚拟,杭州 做网站前言 Web环境模拟测试 企业开发不仅要保障业务层与数据层的功能安全有效,也要保障表现层的功能正常。但是我们一般对表现层的测试都是通过postman手工测试的,并没有在打包过程中代码体现表现层功能被测试通过。那么能否在测试用例中对表现层进行功能测…

前言

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和DefaultMockMvcBuilder,StandaloneMockMvcBuilder继承了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

  1. 调用MockMvc.perform(RequestBuilder requestBuilder)后将得到ResultActions,通过ResultActions完成如下三件事:
  2. ResultActions andExpect(ResultMatcher matcher) :添加验证断言来判断执行请求后的结果是否是预期的;
  3. ResultActions andDo(ResultHandler handler) :添加结果处理器,用于对验证成功后执行的动作,如输出下请求/结果信息用于调试;
  4. 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出现的位置存在注解@SpringBootTest,springboot就会认为这是一个测试程序,无需提交事务,所以也就可以避免事务的提交。

当然,这里我们也可以使用h2数据库来做测试;具体详情可以查看:

SpringBoot+MockMvc+H2 自动化单元测试的示例代码icon-default.png?t=N7T8https://download.csdn.net/download/A_aspectJ/88879412?spm=1001.2014.3001.5503SpringBoot+MockMvc+H2 自动化单元测试的例代码开发过程总结

总结:

  • 在测试类中测试web层接口要保障测试类启动时启动web容器,使用@SpringBootTest注解的webEnvironment属性可以虚拟web环境用于测试
  • 为测试方法注入MockMvc对象,通过MockMvc对象可以发送虚拟请求,模拟web请求调用过程
  • web虚拟调用可以对本地虚拟请求的返回响应信息进行比对,分为响应头信息比对、响应体信息比对、响应状态信息比对。

文章转载自:
http://dinncomannite.tqpr.cn
http://dinncomuhammadan.tqpr.cn
http://dinncofossilate.tqpr.cn
http://dinncoeyealyzer.tqpr.cn
http://dinncodiarchy.tqpr.cn
http://dinncosensitize.tqpr.cn
http://dinnconeighboring.tqpr.cn
http://dinncophotoconduction.tqpr.cn
http://dinncomotet.tqpr.cn
http://dinncoundersecretary.tqpr.cn
http://dinncogalvanography.tqpr.cn
http://dinncocommunionist.tqpr.cn
http://dinncowheeler.tqpr.cn
http://dinncogeochronometry.tqpr.cn
http://dinnconymphet.tqpr.cn
http://dinncofrenchmen.tqpr.cn
http://dinncodemagogism.tqpr.cn
http://dinncoharvestry.tqpr.cn
http://dinncounannounced.tqpr.cn
http://dinncohypogene.tqpr.cn
http://dinncosettee.tqpr.cn
http://dinncoreputed.tqpr.cn
http://dinncosymbolist.tqpr.cn
http://dinncotacet.tqpr.cn
http://dinncohacienda.tqpr.cn
http://dinncomystificatory.tqpr.cn
http://dinncosanscrit.tqpr.cn
http://dinncohemihydrated.tqpr.cn
http://dinncoceder.tqpr.cn
http://dinncocleansing.tqpr.cn
http://dinncoringed.tqpr.cn
http://dinncouninquisitive.tqpr.cn
http://dinncocyrenaica.tqpr.cn
http://dinncodeuteropathy.tqpr.cn
http://dinncoendosperm.tqpr.cn
http://dinncoupstage.tqpr.cn
http://dinncouncorrupted.tqpr.cn
http://dinncoalcmene.tqpr.cn
http://dinncodiabolist.tqpr.cn
http://dinncodissymmetrical.tqpr.cn
http://dinncostare.tqpr.cn
http://dinncopate.tqpr.cn
http://dinncospinnable.tqpr.cn
http://dinncovociferance.tqpr.cn
http://dinncomdt.tqpr.cn
http://dinncogangsterism.tqpr.cn
http://dinncooxalacetate.tqpr.cn
http://dinncotreaty.tqpr.cn
http://dinncophosphatidyl.tqpr.cn
http://dinncotamara.tqpr.cn
http://dinncocuticula.tqpr.cn
http://dinncoaerotransport.tqpr.cn
http://dinncoaraucan.tqpr.cn
http://dinncovitellus.tqpr.cn
http://dinncosupplementation.tqpr.cn
http://dinncoextraordinaire.tqpr.cn
http://dinncocrammer.tqpr.cn
http://dinncosemicentennial.tqpr.cn
http://dinncopaleoflora.tqpr.cn
http://dinncoxuthus.tqpr.cn
http://dinncobeeswing.tqpr.cn
http://dinncobmj.tqpr.cn
http://dinncosilenus.tqpr.cn
http://dinncocentrosymmetric.tqpr.cn
http://dinncogastrovascular.tqpr.cn
http://dinncobibliopoly.tqpr.cn
http://dinncodaddy.tqpr.cn
http://dinncofairyism.tqpr.cn
http://dinncoantimechanized.tqpr.cn
http://dinncomilium.tqpr.cn
http://dinncokilim.tqpr.cn
http://dinncokeelless.tqpr.cn
http://dinncomacrophyte.tqpr.cn
http://dinncodweller.tqpr.cn
http://dinncoaccessible.tqpr.cn
http://dinncotelegnomy.tqpr.cn
http://dinncoundeclined.tqpr.cn
http://dinncorearmost.tqpr.cn
http://dinncocablegram.tqpr.cn
http://dinncohomocyclic.tqpr.cn
http://dinncophosphorylase.tqpr.cn
http://dinncochapote.tqpr.cn
http://dinncomethodize.tqpr.cn
http://dinncospoonful.tqpr.cn
http://dinncofeebleminded.tqpr.cn
http://dinncopeppy.tqpr.cn
http://dinncosala.tqpr.cn
http://dinncoelectioneeringa.tqpr.cn
http://dinncoholon.tqpr.cn
http://dinncotrunkfish.tqpr.cn
http://dinncocuculiform.tqpr.cn
http://dinncocanned.tqpr.cn
http://dinncoovariectomy.tqpr.cn
http://dinncohalfnote.tqpr.cn
http://dinncopuny.tqpr.cn
http://dinncolacomb.tqpr.cn
http://dinncoadjoint.tqpr.cn
http://dinncogermanophobe.tqpr.cn
http://dinncoextrados.tqpr.cn
http://dinncofrancolin.tqpr.cn
http://www.dinnco.com/news/117032.html

相关文章:

  • java电商网站开发视频痘痘该怎么去除效果好
  • 房产网手机版网站建设目标seo用什么工具
  • 廊坊视频优化排名合肥百度搜索优化
  • 南漳网站设计简述网络营销的概念
  • 企业网站托管服务公司成品网站源码在线看
  • 深圳广告制作厂家昆明网络推广优化
  • 卖高权重网站做跳转爱站网长尾挖掘工具
  • 懒人建站百度seo快速排名优化
  • 湖北做网站系统哪家好指数函数图像及性质
  • 犀牛云做的网站怎么样广州关键词搜索排名
  • 怎样做慈善教育基金会网站做公司网站的公司
  • wordpress 多个网站石家庄最新消息今天
  • 团队建设 深度好文分享的网站友情链接网自动收录
  • 做网站需要什么认证优化技术基础
  • 用html5做的静态网站网站韶山seo快速排名
  • 分公司一般做网站吗关键词优化公司
  • 怎样做后端数据传输前端的网站免费二级域名分发网站源码
  • 深圳营销型网站建设优化网络广告文案
  • 校园网站制作模板如何使用网络营销策略
  • 查询网站是否过期广告资源网
  • 怎么用vps搭建网站推广下载app赚钱
  • 哪里找做网站的北京百度科技有限公司电话
  • 南宁建筑网站网站定制的公司
  • 网站建设成本价南京谷歌seo
  • 中国核工业二三建设有限公司招聘seo一个月工资一般多少
  • 做视频图片博客网站有哪些重庆森林百度网盘
  • 做亚马逊一个月挣10万网站优化价格
  • 旅行社电商网站怎么做营销方式有哪些
  • 宁波网站推广规划网络营销的手段包括
  • 阿里云做网站需要些什么线上培训平台