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

Maven 之 JUnit 测试体系构建全解析

目录

1. 🧪maven工程测试概述

2. 🔧Junit使用步骤

2.1. 📦定义被测试的类

2.2. 🔍对定义的类进行测试

2.3. ✍️测试类中编写测试方法

3. 📊Junit结果判定

4. ⏰@Before、@After

5. 📌总结


💡【开发哲学共勉】

pom 文件作为 Maven 项目的核心,以简洁的标签和精准的配置,掌控着依赖的全局,如同船长依据航海图引领巨轮在复杂的海洋中航行,确保项目在正确的航道上前行

🎉 前言

在软件开发中,Maven 工程测试通过规范结构与自动化流程保障代码质量,JUnit 框架则为单元测试提供了高效的实现方式

个人主页:艺杯羹 🌿

系列专栏:Maven 🚀

1. 🧪maven工程测试概述

Maven 工程测试:基于 Maven 构建的 Java 自动化测试,规范测试结构(src/test/java),pom.xml 管理测试依赖(JUnit 等),通过 mvn test执行,保障代码质量

测试即在交付前对写好的代码进行评测,分为黑盒测试和白盒测试:

  • 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。只要结果正确
  • 白盒测试:需要写代码的。关注程序具体的执行流程。步骤和结果都要正确

单元测试是指对软件中的最小可测试单元进行检查和验证,Java里单元测试指一个类的功能。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试

Junit是Java编程语言的单元测试框架,用于编写和运行可重复的自动化测试。从分类中属于白盒测试

单元测试,相当于是测试每一个零件是否好用,之后还要集成测试,也就是整体怎么样

2. 🔧Junit使用步骤

在Maven项目中引入依赖(代码复制到 pom.xml 中的 dependencies 下)

<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><!--依赖的选择,测试的时候生效--><scope>test</scope>
<!-- scope 范围 -->
</dependency>

2.1. 📦定义被测试的类

这里用加法和除法来做测试

public class Calculator {// 加法public int add(int a,int b){return a+b;}// 除法public int div(int a,int b){return a/b;}
}

2.2. 🔍对定义的类进行测试

  1. 创建 src/test/java 包,并将改包设置为 测试包
  2. src/test/java 中创建测试类的包,包名一般与被测试包名一致
  3. 定义测试类,类名一般为  被测试类+Test

2.3. ✍️测试类中编写测试方法

public class CalculatorTest {/*** 测试方法是可以独立运行的,写法如下:* 1.方法名一般为test+被测试方法名* 2.方法上方添加@Test* 3.测试方法没有参数和返回值*/@Testpublic void testAdd(){Calculator calculator = new Calculator();int add = calculator.add(1, 2);System.out.println(add);}@Testpublic void testDiv(){Calculator calculator = new Calculator();int div = calculator.div(2,0);System.out.println(div);}
}

3. 📊Junit结果判定

点击测试方法边的三角运行测试方法,如果出现绿色对钩,证明方法能正常运行;如果出现红色感叹号,证明方法抛出异常,需要修改方法

可以通过命令来全部一起执行,就不用手动一个一个点了

当然,不是能正常运行就代表方法一定没有问题,也有可能方法的结果和预期结果不一致,也就是,给他的一些限制,这时就需要使用断言操作

断言

写断言的时候,一定要注意,不能自己把结果写错了

@Test
public void testAdd(){Calculator calculator = new Calculator();int add = calculator.add(1, 2);/*** 断言 Assert* 参数1:预期结果,参数2:实际结果*/Assert.assertEquals(2,add);
}

如果真实结果和预期结果不一致,则会抛出以下异常:

4. ⏰@Before、@After

在测试类中

注解执行时机作用描述
@Before每个测试方法执行用于初始化测试环境(如创建对象、连接数据库等),确保测试方法独立性。
@After每个测试方法执行用于清理测试资源(如关闭连接、释放内存等),避免测试间的副作用。

之后的学习中,我们可以设置前置方法为获取资源,后置方法为释放资源
像JDBC中,前置方法获取连接,后置方法释放资源

@Before
public void before(){System.out.println("开始测试");
}public void testAdd() {Calculator calculator = new Calculator();int result = calculator.add(1, 2);// 预期结果是3,运行结果是resultAssert.assertEquals(3,result);System.out.println(result);}@After
public void after(){System.out.println("结束测试");
}

5. 📌总结

希望本文能够帮助到你(๑•̀ㅂ•́)و✧

相关文章:

  • JS 大整数相加
  • Matlab自学笔记六十:符号表达式的缩写和简化
  • VitePress搭建静态博客
  • 一文汇总电子电气架构的成本优化方向
  • 关于华为Pura70Pro+升级鸿蒙NEXT和回退
  • 艾立泰数字化重塑汽车零部件包装租赁行业
  • Chromium 136 编译指南 macOS篇:编译优化技巧(六)
  • 【Linux学习笔记】进程间通信之共享内存
  • C# SolidWorks二次开发-实战2,解决SolidWorks2024转step文件名乱码问题
  • 从二维到三维:ArcGIS Pro与Aerialod联合制作三维人口密度分布图
  • Vue2 day04
  • xlsx-style 插件批量导出多个sheet表格excel中遇到的问题及解决
  • 微服务链路追踪在生产环境问题定位中的实战经验
  • Windows电脑数据恢复终极指南:从原理到实战
  • 七层网络模型与电脑通信比喻
  • 基于 Docker 的服务部署探索(Day 2)
  • 从语言到生态:编程语言在各行业的应用格局与未来演进
  • 编程语言的设计之道:从底层控制到表达自由
  • SPL 实践系列:跨库移植 SQL
  • redis如何使用IO多路复用
  • 天空彩票网站怎么做/优化网站排名推广
  • 行业门户网站解决方案/b站推广费用一般多少
  • 马云做一网站 只作一次/百度网址大全简单版
  • 什么网站做兼职靠谱吗/湘潭网站设计外包服务
  • 网站建设给客户看的ppt/刷神马seo排名首页排名
  • 自己怎样给网站做推广/推广注册app拿佣金