• Day03 SpringBoot第三次笔记---开发实用篇第二部分(测试、数据层、业务层以及表现层的测试,以及一些整合)


    一、测试 79

     

    1.1加载测试专用属性 79

    只在test测试的文件内进行临时的属性配置, 不影响其他的。 

    配置临时属性信息方式一:

    配置临时属性信息方式二: 

     两个临时属性的信息都同时存在时,结果为testValue2,因为,在做配置时,命令(args)的优先级比配置文件的优先级高。

    配置属性的优先级:

    在配置文件中的属性信息不会被测试环境中所写的临时属性信息所覆盖。

    例如下所示:

    配置文件中的属性信息:

    测试环境中临时的属性信息:

    结果:

    说明:配置文件中的信息不会覆盖临时属性信息。 

    加载测试专用属性:

     

    总结:

    1.2加载测试专用配置 80

    局部配置导入。只在某些位置添加bean,仅对该范围内起到配置的效果。

    加载专用的配置作用:有效降低冲突的问题

    案例如下:

    步骤一:设置一个类的配置

    步骤二:测试专属bean的测试效果 

    结果:

    加载测试专用配置: 

    总结:

    1.3测试类中启动web环境 81

    查看源码并查看源码的方法:在需要查看的源码后使用ctrl+鼠标左键,进入源码之后,使用ctrl+f12。即可查看源码的方法。

    使用@SpringBootTest中的方法web。

    注:选择是否开启web。defined_port。默认的服务器端口。也可以检验使用RANDOM_PORT来检验是否把端口进行了不能被重新赋予新端口的测试。

    web环境模拟测试:

    1.4发送虚拟请求 82

    创建一个controller。一套SpringBoot控制器。使用MVC来作为一个模拟的虚拟调用。 

    步骤一:开启虚拟调用

    步骤二:发起调用,得需要存在一个调用的对象。 

    创建对象:下面两种方式: 

    为一个方法注入资源。

    方式一:

    1. @Autowired
    2. private MockMvc mvc;

    方式二:直接放到参数的位置进行自动装配

    void testWeb(@Autowired MockMvc mvc)

    不过方式一的范围比方式二的范围大。

    步骤三:创建虚拟请求,请求参与访问路径。

    步骤四:执行对应的请求。

    虚拟请求测试: 

    表现层:以下部分1.5-1.8是测试环境下的表现层内容的匹配验证(内容、json、请求头等等) 

    1.5匹配响应执行状态 83

    状态进行对应匹配。   例如:成功:200 失败:404等

    1.6匹配响应体 (内容字符串的匹配)84

    执行结果的匹配。拿内容进行对比匹配

     

    1.7匹配响应体(json)85

    因为传递的数据匹配是pojo的实体类json,所以需要采用json匹配。创建一个json。让后进行json匹配。

    1.8匹配响应头 86

    将表现类的内容进行了匹配处理。

    总结:

    业务层的测试: 

    1.9业务层测试事务回滚 87

    主要测试的目的:在业务测试时,测试的结果不会对数据库的数据进行修改或增加。但是测试也是需要运行成功。

    在业务层做测试时,不做数据留痕, 不做垃圾数据保存等。在业务层添加注解@Transactional即可解决该问题。

     因为SpringBoot发现这是个测试类所以才不进行提交数据到数据库。

     

    1.10测试用例设置随机数据 88

    测试用例数据设定:

     

     总结:

    总结:

     二、数据层解决方案---SQL 89

      

     

     

     

     总结:

    2.1JdbcTemplate(持久化技术) 90

     注:jdbc这个作用很大。在公司中也常用。

    pom.xml文件需要进行依赖的设置。 

     总结:

    2.2H2数据库 91

     都可以伴随着SpringBoot进行内随启动。  源码都非常小,运行速度块。

      启动数据库还需要web服务器环境,所以还得需要创建web的依赖。

     

     在配置文件中进行输入以下语句,可以开启使能。

     注:在H2数据库中创建表的指令和Mysql不一样。

    配置文件中进行设置: 

     

    注:避免造成安全隐患

    总结:

    总结:

    三、数据层解决方案---NoSQL 92

    本部分讲解不使用数据库来进行数据存储的问题。

     3.1Redis 92

    解释:

    1、给一个名称,这边Redis就会存储一个值。这叫做key-value存储结构。和Mysql相比,Mysql可以进行数据库的概念、表的概念、字的概念以及记录的概念。

    2、不是存储到硬盘上,而是内存上进行存储工作。

    启动Redis:

    步骤一:在文件所在位置进行cmd操作。

    步骤二:进入终端输入 redis-cli.exe,显示IP

    步骤三:输入shutdown

     步骤四:退出exit

     步骤五:再次重新开启

    3.2SpringBoot整合Redis 93

    步骤一:在进行创建工程时,在选择Nosql下包含Redis插件。

    步骤二:配置文件配置信息

    步骤三:设置与获取Redis的数据信息

     SpringBoot整合Redis步骤:

    步骤一:

     步骤二:做配置文件的配置

    步骤三:

     步骤四:

    总结:

    3.3SpringBoot读写Redis的客户端 94

    疑问?控制台的redis和在IDEA下的Redis不同步,难道说不是同一个Redis。

    事实:两者是同一个Redis。

    解决问题:使用StringRedisTemplate的可以将两者进行衔接。使其可以同步。

    总结:

    3.4SpringBoot操作Redis客户端实现技术切换(jedis)95

    jedis:传统的Redis客户端。

    lettuce:也是一种Redis客户端。

    注:系统默认的是lettuce。如果工程项目使用了jedis,需要进行修改改变。步骤如下。

    实现更换Redis的客户端步骤:

    步骤一:pom.xml中更换依赖或者是添加依赖

    步骤二:配置文件中配置客户端

    lettuce和jedis的区别:

    总结:

    3.5Mongodb简介 96

    主要存储的数据变化特别快的场景,会数据会发生一点点改变、很快的改变、特别快实时的改变。

    3.6Mong下载与安装 97

     

    总结:

    3.7SpringBoot整合Mongdb 99 

    步骤一:创建新工程

    步骤二:添加依赖pom.xml

     步骤三:修改配置文件信息

    步骤四:添加对象 

    SpringBoot整合Mongdb整合步骤:

    步骤一:

     步骤二:

     步骤三:

    总结:

  • 相关阅读:
    kafka集群部署
    qcow2等格式镜像磁盘冷访问
    1044 Shopping in Mars(二分)
    【论文笔记】Scene as Occupancy
    分库分表之历史表如何选择最佳分片路由规则
    leetcode 6136-算术三元组的数目
    【Java】各List集合的特点和区别
    ChatGPT的实现
    ShareSDK for Flutter
    3.每天进步一点点-Python爬虫需要了解HTTP 请求报文
  • 原文地址:https://blog.csdn.net/xiaoxixicc/article/details/127647881