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

在县城怎么做网站公司网络域名侵权十大案例

在县城怎么做网站公司,网络域名侵权十大案例,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/a/435499.html

相关文章:

  • 佛山专业做淘宝网站推广住房与城乡建设局网站
  • 康复实训室介绍:告别“假人”模型,在沉浸式环境中锻造康复精英的黄埔军校
  • C语言小白实现多功能计算器的艰难历程
  • 【C++实战(62)】从0到1:C++打造TCP网络通信实战指南
  • 企业网站建设杭州公司宠物寄养网站毕业设计
  • 同ip怎么做不同的网站网站设计需要什么技术
  • 邢台做wap网站的公司做旅行路线的网站
  • 港口备案怎么在网站做培训心得简短
  • 菏泽市住房和建设局网站专业建站公司电话咨询
  • 网站关键词几个字网站建设策划书范文提纲
  • Java 大视界 -- Java 大数据在智能安防周界防范系统中的行为分析与预警精度提升(419)
  • 北京金港建设股份有限公司网站wordpress怎么迁移到空间
  • 查工作单位的网站长沙网站建设公司有哪些
  • 淄博网站制作建设wordpress添加微信公众号
  • 【C++实战(63)】C++ 网络编程实战:UDP客户端与服务端的奥秘之旅
  • [数据分享第八弹]历史人文相关地理数据
  • 河南省建设厅网站中州杯团购小程序
  • 同城可以做别人一样的门户网站吗网址导航总是自动在桌面
  • C语言——循环的嵌套小练习
  • 阿里云买了域名怎么建网站wordpress电源模板
  • 深入解析 Roo Code:提示词的技术结构与工作原理
  • 旅游网站系统建设方案wordpress页面缓慢
  • 杭州软件网站建设广东深圳职业技术学校
  • 树的遍历方式总结
  • excel做网站链接网站流量一直下降
  • VS2017 安装 .NET Core 2.2 SDK 教程(包括 dotnet-sdk-2.2.108-win-x64.exe 安装步骤)​
  • 模拟算法
  • 网站建设需要收集资料吗网络营销中的四种方法
  • 能源经济选题推荐:绿色电网
  • 展览展示搭建设计晋中网站seo