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

郑州一网网站建设如何提高网站在搜索引擎中的排名

郑州一网网站建设,如何提高网站在搜索引擎中的排名,男做女爱网站,wordpress 微信 插件开发简介 本文介绍了SpringBoot测试中的五项关键技术:测试类专用属性加载、 测试类专用Bean配置、 表现层测试方法、测试类事务回滚控制、配置文件随机数据设置)。这些技术可以有效隔离测试环境,确保测试数据不影响生产环境,同时提供了…

简介

        本文介绍了SpringBoot测试中的五项关键技术:测试类专用属性加载、 测试类专用Bean配置、 表现层测试方法、测试类事务回滚控制、配置文件随机数据设置)。这些技术可以有效隔离测试环境,确保测试数据不影响生产环境,同时提供了便捷的测试验证手段。文章内容若存在错误或需改进的地方,欢迎大家指正!若对操作有任何疑问欢迎留言!非常感谢!

目录

一、加载测试类专用属性

1、使用@SpringBootTest的properties属性

2、使用@SpringBootTest的args属性

二、测试类专用Bean

1、创建配置类

2、在需要引用的类上面声明引入配置类

三、测试表现层

1、测试类中启动web环境

2、发送虚拟请求

(1)开启发送虚拟请求的功能

(2)发送虚拟请求

(3)测试

3、匹配响应

(1)匹配响应结果

(2)匹配响应体

(3)匹配响应头

四、测试类的事务回滚

1、事务回滚实现

五、配置文件设置随机数据

1、设置随机数据

2、测试


一、加载测试类专用属性

        如果只想在当前测试类中加载专用属性,而不影响其他任何代码,那么就可以使用下面的方式。

1、使用@SpringBootTest的properties属性

        第一种方式是可以使用@SpringBootTest注解的properties属性进行配置当前测试类的临时属性,仅在当前类生效,参数是一个数组。

        可以看到下面连resources目录都没有,但是临时配置可以生效。若resources目录下的application配置文件存在,那么当前测试类会先加载配置文件,然后再加载这个类的临时属性,相同的属性会被临时属性覆盖,不同的属性全都保留。

2、使用@SpringBootTest的args属性

        第二种方式是可以使用@SpringBootTest注解的args属性进行配置当前测试类的临时属性,仅在当前类生效,参数是一个数组。

        args属性的级别比properties级别高,也就是说属性同时存在时,args属性会覆盖相同属性。

二、测试类专用Bean

        如果在测试的时候需要引入一下外部的Bean,仅仅在当前测试类中使用,而不在全局生效,那么就可以使用下面的方式。

1、创建配置类

        这里使用Student类做为第三方Bean使用

        首先是先在test目录下创建一个配置类,注意这个类并没有任何注解进行声明,就是一个普通的类,然后写一个方法,方法的返回值就是第三方类,并使用@Bean注解进行声明。由于当前类是一个普通类,就算方法上面声明了@Bean注解,也不会主动成为IOC容器中的Bean。

2、在需要引用的类上面声明引入配置类

        在需要使用Bean的测试类上面使用@Import注解引入配置类,然后在测试类里面就能正常使用第三方Bean了。这是因为使用@Import注解,只有当运行了当前测试类的时候,会自动将配置类注册为IOC容器中的Bean,当配置类成为IOC容器中的Bean之后,就会将被@Bean声明的方法的返回值也注册为Bean,于是在当前类中就可以使用第三方Bean了。

三、测试表现层

1、测试类中启动web环境

        测试类中默认是步启动web环境的,需要进行一些配置让测试类也能启动web环境。只需要给@SpringBootTest注解的webEnvironment属性赋值即可,webEnvironment属性值默认是SpringBootTest.WebEnvironment.NONE,代表不启动web环境,那么只需要设置为DEFINED_PORT或者RANDOM_PORT即可。

  • DEFINED_PORT:表示使用默认的端口启动web环境,也就是程序设置的端口是多少就使用多少。
  • RANDOM_PORT:表示使用随机的端口启动web环境,这里不会出现端口冲突。

2、发送虚拟请求

(1)开启发送虚拟请求的功能

        在当前测试类上声明@AutoConfigureMockMvc注解,该注解作用是开启发送虚拟请求的功能。

(2)发送虚拟请求

        开启启动web环境和发送虚拟请求的功能之后,只需要在当前测试类中注入MockMvc对象,然后使用MockMvc对象调用perform方法即可发送虚拟请求。perform方法接收一个RequestBuilder类型的对象,RequestBuilder是一个接口,MockHttpServletRequestBuilder是它的实现类,所以需要创建一个MockHttpServletRequestBuilder对象传递给perform方法。MockHttpServletRequestBuilder对象的创建是通过抽象类MockMvcRequestBuilders调用方法创建,抽象类MockMvcRequestBuilders可以调用get、post、put、delete等方法,方法入参是URL,也就是请求路径,这些方法也就代表了MockHttpServletRequestBuilder对象要发送什么请求,然后由perform方法发送。

(3)测试

        可以看到成功向getById方法发送Get请求。

3、匹配响应

        通过上面的设置就已经可以发送请求了,那么下面的操作就是匹配调用之后的结果了。当通过perform方法发送请求之后,会返回一个ResultActions对象,然后可以拿到这个对象调用andExpect方法进行匹配预期值,方法的入参是预期值,实际值已经在ResultActions对象中了,andExpect方法自带断言,若实际值与入参的预期值相同,那么就什么也不会发生,反之则会报错,并打印匹配的信息。

        预期值对象由抽象类MockMvcResultMatchers调用指定的方法得到,然后再由预期值对象设置预期值,然后作为参数传递给andExpect方法即可。MockMvcResultMatchers可以调用指定的方法获取请求信息和响应信息,下面举三个例子,其余校验只需要改变MockMvcResultMatchers调用的方法即可。

        因为成功之后不会有任何提示,所以下面的测试,会使用失败用例。

(1)匹配响应结果

        使用MockMvcResultMatchers调用status方法即可得到调用结果响应状态对象,然后使用该对象设置预期值,最后将调用结果响应状态对象传递给andExpect方法即可。

(2)匹配响应体

        使用MockMvcResultMatchers调用content方法即可得到响应体对象,然后使用该对象设置预期值,最后将响应体对象传递给andExpect方法即可。

(3)匹配响应头

        使用MockMvcResultMatchers调用header方法即可得到请求头对象,然后使用该对象设置预期值,最后将请求头对象传递给andExpect方法即可。

四、测试类的事务回滚

        在测试类中会有操作数据库的方法,类似于下面的操作,当每次运行测试类的时候,就会全量的执行这些方法,在执行这些方法的时候,会直接影响数据库的数据,因为测试数据是严禁影响真实数据的,那么所有测试类的测试方法中有关操作数据库的操作应该全部由事务管理并最终将事务全部回滚,保证不对真实数据造成任何影响。

1、事务回滚实现

        只需要在测试类上增加@Transactional和@Rollback(value = true)注解即可,并且@Rollback注解的属性value的值为true,就代表该测试类中所有有关数据库的操作全部回滚,如果需要提交事务,那么只需要将value的值设置为false即可。因为@Rollback注解的属性value的值默认就为true,所以如果只想设置事务全部回滚,那么只在测试类上加@Transactional一个注解也可以。

五、配置文件设置随机数据

        在配置文件中设置随机数据,不是专门为测试提供的功能,而是在测试的场景中使用的比较多,当然在其他地方使用也完全没有问题。

1、设置随机数据

        只需要在配置文件中使用${random.类型},即可获取随机值,具体类型如下。另外字符串类型的还可以自定义拼接字符串,整形和长整型的范围表示也不一定非得使用小括号。

2、测试

        使用正常属性绑定,然后获取实体类的Bean,然后直接打印即可看到效果。

上一篇——》【第八篇】 SpringBoot高级配置(配置篇)https://blog.csdn.net/qq1743177790/article/details/148513782

http://www.dtcms.com/wzjs/186572.html

相关文章:

  • 环保局网站建设公司网站推广方案
  • 上海城乡建设与管理委员会网站百度推广要多少钱
  • 网站建设哪好深圳网络推广方法
  • 织梦手机端网站怎么做知乎seo排名的搜软件
  • 常州网站制作市场网拍外宣怎么推广
  • 后台管理网站名友情链接交换网
  • 上海做网站建设的公司排名nba总得分排行榜最新
  • 承德网站制作报价北京官方seo搜索引擎优化推荐
  • wordpress注册页优化大师班级优化大师
  • 网站模板是什么意思seo教程 seo之家
  • 网站备案换主体谷歌浏览器 安卓下载2023版官网
  • 类似58同城网站建设多少钱常用于网站推广的营销手段是
  • 石狮网站定制怎样写营销策划方案
  • 无锡市住房城乡建设委网站广告软文是什么意思
  • 网站怎么做聚合大二网络营销实训报告
  • 多用户商城系统网站建设最新国际新闻大事件
  • 东台做网站的珠海做网站的公司
  • 专做商铺中介网站关键词全网搜索
  • 微信小程序功能开发谷歌seo工具
  • 网站开发语音占比图片搜索
  • 如何做自己的网站做seo推广一年大概的费用
  • 做网站杭州傲视信息百度关键词优化曝光行者seo
  • 佛山做网站百度注册公司网站
  • 哈尔滨网站建设推广服务上海网站seoseodian
  • 徐州鸿美网站建设百度指数热度榜
  • 长春网站制作哪里好家居seo整站优化方案
  • 西安注册公司在哪个网站系统长沙seo网络推广
  • 大企业网站建设企业培训考试app
  • 如何加强高校网站建设百度优化服务
  • 我做的静态网站怎么发布到网上上海网络排名优化