Maven、测试、Junit依赖

Maven的作用
管理依赖:通过pom.xml管理项目依赖的资源(jar包)。(不再需要每次都手动导入jar包)
项目构建(标准化跨平台的项目构建方式):complie,test,package,install(编译,测试,打包,发布)等项目构建流程
统一项目结构:提供标准、统一的项目结构(主程序,测试程序)

仓库:用于存储资源,管理各种jar包。
本地仓库:自己计算机上的一个目录。(在安装maven的时候在setting.html文件中需要自己指定该文件夹目录作为本地仓库,存放之后配置依赖)
中央仓库:由Maven团队维护的全球唯一的。 仓库地址:https://repo1.maven.org/maven2/
远程仓库(私服):一般由公司团队搭建的私有仓库。(在安装maven的时候在setting.html文件中需要自己说明远程仓库,现在用的是阿里的远程仓库)
查找依赖的顺序是:本地——》远程——》中央

Maven安装https://heuqqdmbyk.feishu.cn/wiki/KTOKw4PvzipYeIkl3N5cSSxYnPb

IDEA集成Maven:
1、创建Maven项目
2、Maven坐标:坐标是资源(jar)的唯一标识,通过该坐标可以唯一定位资源位置。使用坐标来定义项目或引入项目中需要的依赖。
groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.itheima)
artifactId:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)
version:定义当前项目版本号
SNAPSHOT: 功能不稳定、尚处于开发中的版本,即快照版本
RELEASE: 功能趋于稳定、当前更新停止,可以用于发行的版本
3、导入Maven项目:将整个Maven项目的文件复制idea, 选择pom.xml,右键Add Maven Projects

依赖管理
1、依赖:指当前项目运行所需要的jar包,一个项目中可以引入多个依赖。
2、搜索依赖:https://mvnrepository.com/
3、配置依赖:
在 pom.xml 中编写 标签
标签中 使用 引入坐标
定义坐标的 groupId,artifactId,version
点击刷新按钮,引入最新加入的坐标
4、排除依赖:指主动断开依赖的资源,(因为是在依赖内部排除,所以被排除的资源无需指定版本。),使用...进行排除。
5、配置失败:
配置失败通常是因为网络问题,检查网络后,应该在本地仓库找到配置失败的latexxx文件,删除,重新下载
如果配置失败的文件很多,可以在maven的安装根目录下放一个del.bat的文件,配置失败后,双击该文件,则可以自动删除本地仓库中配置失败的latexxx文件,然后再重新刷新下载即可
注意:重新加载依赖,依赖下载了之后,maven面板可能还会报红,此时可以关闭IDEA,重新打开IDEA加载此项目即可。

依赖生命周期
Maven中有3套相互独立的生命周期:
1、clean:清理工作。
2、default:核心工作,如:编译、测试、打包、安装、部署等。
clean:移除上一次构建生成的文件
compile:编译项目源代码
test:使用合适的单元测试框架运行测试(junit)
package:将编译后的文件打包,如:jar、war等
install:安装项目到本地仓库
右侧的maven工具栏,选中右边LifeCycle中对应的生命周期,双击执行。
在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行。
3、site:生成报告、发布站点等。

测试
测试:是一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。
阶段划分:
1、单元测试(一般是方法测试)
(1)介绍:对软件的基本组成单位进行测试,最小测试单位。
(2)目的:检验软件基本组成单位的正确性。
(3)测试人员:开发人员
2、集成测试
(1)介绍:将已分别通过测试的单元,按设计要求组合成系统或子系统,再进行的测试。
(2)目的:检查单元之间的协作是否正确。
(3)测试人员:开发人员
3、系统测试
(1)介绍:对已经集成好的软件系统进行彻底的测试。
(2)目的:验证软件系统的正确性、性能是否满足指定的要求。
(3)测试人员:测试人员
4、验收测试
(1)介绍:交付测试,是针对用户需求、业务流程进行的正式的测试。
(2)目的:验证软件系统是否满足验收标准。
(3)测试人员:客户/需求方
测试方法:
1、白盒测试:清楚内部结构,代码逻辑,用于验证代码、逻辑正确性
2、黑盒测试:不清楚内部结构,代码逻辑,用于验证软件功能实现
3、灰盒测试:结合白盒测试和黑盒测试,既关注代码逻辑也关注外部表现

Junit依赖:
1、在pom.xml中,引入JUnit的依赖。
2、在test/java目录下,创建测试类,并编写对应的测试方法,并在方法上声明@Test注解。(JUnit单元测试类名命名规范为:XxxxxTest或testXxxxx。JUnit单元测试的方法,必须声明为 public void)
3、运行单元测试 (测试通过:绿色;测试失败:红色)。

如何测试,确保代码正确
单元测试不报错不代表代码没有问题:
1、应该考虑到所有情况,测试覆盖率应该>=99% (这一步可以交给AI来做)
2、使用断言判断测试结果是否符合预期效果

断言Assertions(来自Junit依赖):
Assertions.assertEquals检查两个值是否相等,不相等就报错。
Assertions.assertNotEquals检查两个值是否不相等,相等就报错。
Assertions.assertNull检查对象是否为 null,不为 null,就报错。
Assertions.assertNotNull检查对象是否不为 null,为 null,就报错。
Assertions.assertTrue检查条件是否为 true,不为 true,就报错。
Assertions.assertFalse检查条件是否为 false,不为 false,就报错。
Assertions.assertThrows检查程序运行抛出的异常,是否符合预期。

Junit其他注解
@Test 测试类中的方法用它修饰才能成为测试方法,才能启动执行 单元测试
@ParameterizedTest 参数化测试的注解(可以让单个测试运行多次,每次运行时仅参数不同),用了该注解,就不需要@Test注解了
@ValueSource 参数化测试的参数来源,赋予测试方法参数 与参数化测试注解配合使用
@DisplayName 指定测试类、测试方法显示的名称(默认为类名、方法名)
@BeforeEach 用来修饰一个实例方法,该方法会在每一个测试方法执行之前执行一次。 初始化资源(准备工作)
@AfterEach 用来修饰一个实例方法,该方法会在每一个测试方法执行之后执行一次。 释放资源(清理工作)
@BeforeAll 用来修饰一个静态方法,该方法会在所有测试方法之前只执行一次。 初始化资源(准备工作)
@AfterAll 用来修饰一个静态方法,该方法会在所有测试方法之后只执行一次。 释放资源(清理工作)

依赖范围
在pom.xml文件中通过 设置
scope值 主程序 测试程序 打包(运行) 范例
compile(默认) Y Y Y log4j
test - Y - junit
provided Y Y - servlet-api
runtime - Y Y jdbc驱动

 

你可能感兴趣的:(Maven、测试、Junit依赖)