单元测试|学习笔记

简介: 快速学习单元测试

开发者学堂课程【高校精品课-厦门大学 -JavaEE 平台技术单元测试学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/80/detail/15965


单元测试


内容介绍

一、单元测试的对象

二、切片测试

三、集成测试

四、性能测试

五、单元测试讲解


测试部分主要结合代码讲解如何进行单元测试、切片测试、集成测试、性能测试。

 

一、单元测试的对象

单元测试是测整个代码最小的部分,最基本的模型对象为 Model 对象( Controller , Service , Dao 对象),值对象( VO ,BO , PO 对象),若有方法则需要进行

单元测试,例子中有 VO对象来生成业务对象的方法,接下来讲解单元测试是如何在这些模型对象和 VO 对象中来完成的。

 

二、切片测试

此时例子的 Service 层是假的 Service 层,并没有访问数据库,所以代码间有意义的是 Controller 层, Controller 层完成了 RESTful  API 的实现,以及能对输入的数据进行合法性检查,此重点是测试 Controller 层 RESTful  API 以及输入参数的合法性,使用切片测试的方法是分离 Controller 层和 Service 层,也就是只测试 Controller 层的代码,在 SpringBoot 的环境下将 Service 层做成模拟的

SpringBoot 的对象来实现对 Controller 层的测试。

 

三、集成测试

会将整个系统作为一个整体从 Controller 层 作为入口来测试每个部分的功能,虽然在此例子中集成测试是没有意义的,但是可以出现集成测试的方法,通过这个例子,展现一种把整个系统作为一个整体来做集成测试的方法。

 

四、性能测试

此部分会选择特定的 API ,比如创建商品的 API 来做性能测试,因为在创建商品 API 时已经做过输入参数合法性检查,所以通过这样的性能测试来观察合法性检查,通过 exception 的方式做合法性检查会出现什么问题。通过代码来讲解测试是

如何完成的。

image.png

 

五、单元测试讲解

如图,所测试的代码都存在于 RestfulDemo 的相关工具的目录中。一般来说在创建代码时,测试代码的目录结构与生产代码的结构保持一致。

例如要测试 GoodsVo ,它是在生产代码中 Controller 包的 VO 包的,测试代码也同样存在于 Controller 包的 VO 包里,而且测试内的命名与生产内的命名有对应关系,需要注意的是所有测试代码的命名要以 Test 结尾,否则无法运行,因此命名为

GoodsVoTest , GoodsVo 中有方法需要测试,叫做 GreatgoodsTest。

在测试此对象之前首先将 VO 对象使用工厂的设计模式创建出,具体的代码需看

Goodsfactory 。

特别说明 Goodsfactory 类是为了测试产生 VO 对象,所以在此类放入 util 中,在生产代码间是没有此类的,因此在打包过程中间是没有这些测试代码的,是没有在

测试代码中间放入的 Goodsfactory ,也不存在 Test 。

Goodsfactory 主要作用是创建 VO ,创建出 Goods 对象需要知道 Goods 对象与预期值是否一致,所以在此处使用了一种方法叫做 assertEqual ,会将 Goods 中间的 name 和预期值做对比,所以在此处比较了 name 、 brief 、 categoryId 、

brandId ,如需要比较 speclist 中的每一个东西是可以实现的,此处已经节省。

这样的单元测试是不依赖框架的,因为测试的对象 Goods  VO 并不是一个由

Spring 容器管理的对象,测试是完全与 Spring 容器无关的。

也可以在 Spring 的框架中做单元测试,比如需要单独测试 Dao 对象、 Service 对象也称为单元测试,但是此种方法的单元测试就不纯粹了,是依赖于 Spring 的环境,所看到的 GoodsVO 是最单纯、纯粹的单元测试。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
Web App开发 JavaScript 前端开发
NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文 | 学习笔记
快速学习 NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文
413 0
NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文 | 学习笔记
|
3月前
|
Java 测试技术 编译器
JMM测试利器-JCStress学习笔记
JMM测试利器-JCStress学习笔记
|
9月前
java202303java学习笔记第四十六天-请求-postman接口测试
java202303java学习笔记第四十六天-请求-postman接口测试
54 0
|
12月前
|
测试技术
java202304java学习笔记第六十天-ssm-spring配置文件-完善测试环境
java202304java学习笔记第六十天-ssm-spring配置文件-完善测试环境
52 0
|
关系型数据库 OLAP API
测试 API|学习笔记
快速学习测试 API
118 0
测试 API|学习笔记
|
存储 SQL 监控
PolarDB-X 进行 TP 负载测试(三)| 学习笔记
快速学习 PolarDB-X 进行 TP 负载测试。
307 0
PolarDB-X 进行 TP 负载测试(三)| 学习笔记
|
SQL 存储 关系型数据库
PostgreSQL 流复制搭建主从环境,同步和异步的解释,压力测试,主从角色切换|学习笔记
快速学习PostgreSQL 流复制搭建主从环境,同步和异步的解释,压力测试,主从角色切换
742 0
PostgreSQL 流复制搭建主从环境,同步和异步的解释,压力测试,主从角色切换|学习笔记
|
数据可视化 Dubbo Java
MSE 微服务测试---自动化回归最佳实践|学习笔记
快速学习 MSE 微服务测试---自动化回归最佳实践
296 0
MSE 微服务测试---自动化回归最佳实践|学习笔记
|
存储 SQL 监控
27 Postgre sql 建模,压力测试|学习笔记
快速学习27 Postgre sql 建模,压力测试
343 0
27 Postgre sql 建模,压力测试|学习笔记
|
数据采集 运维 安全
全方位的测试质量守护体系,保障交付质量|学习笔记
快速学习全方位的测试质量守护体系,保障交付质量
312 0
全方位的测试质量守护体系,保障交付质量|学习笔记