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

简介: 本文详解Maven工程中JUnit单元测试实践:从pom.xml依赖配置、test目录结构规范,到@Test断言验证、@Before/@After资源管理,涵盖黑/白盒测试原理与结果判定技巧,助力保障Java代码质量。(239字)

💡【开发哲学共勉】

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.测试方法没有参数和返回值
   */
  @Test
  public void testAdd(){
    Calculator calculator = new Calculator();
    int add = calculator.add(1, 2);
    System.out.println(add);
   }
  @Test
  public 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,运行结果是result
   Assert.assertEquals(3,result);
   System.out.println(result);
    }
@After
public void after(){
  System.out.println("结束测试");
}

5. 📌总结

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

目录
相关文章
|
1天前
|
SQL Java 数据库连接
MyBatis 之基础概念与框架原理详解
MyBatis是一款轻量级半自动ORM框架,封装JDBC,让开发者专注SQL编写与业务逻辑;支持XML/注解配置、动态SQL、高级映射,SQL与代码分离,灵活高效,显著提升持久层开发效率。(239字)
29 1
MyBatis 之基础概念与框架原理详解
阿里云轻量应用服务器68元/年,新用户特价,不要退款,重新买价格459元,涨价了!
阿里云轻量应用服务器新用户专享价68元/年(2核2G、200M带宽、40GB ESSD),秒杀低至38元。⚠️地域选定后不可修改,退款将失去新用户资格,再购恢复原价459元/年!务必下单前确认地域,避免浪费优惠。阿里云轻量应用服务器官网:https://t.aliyun.com/U/dwftch
|
1天前
|
算法
Tushare接口文档:因子列表(factor_list)
`factor_list`是Tushare提供的因子数据目录接口,用于获取Tushare自主研发的全部量化因子列表,包括因子名称、因子分类和算法逻辑等元数据信息。该接口是使用Tushare因子值(`factor_value`)的前置查询工具,帮助用户了解有哪些因子可用以及每个因子的具体含义。
24 0
|
1天前
|
前端开发 Java 测试技术
Maven 之工程构建与依赖管理全攻略
本文系统讲解Maven核心知识:涵盖POM/JAR/WAR工程类型与标准目录结构;详解构建生命周期(validate→compile→test→package→install→deploy)及常用命令;深入解析本地/远程/中央仓库机制,并指导配置本地仓库路径、阿里云镜像及JDK版本。内容精炼实用,助开发者快速掌握Maven项目管理精髓。
34 1
Maven 之工程构建与依赖管理全攻略
|
1天前
|
SQL 安全 Java
MyBatis 之分页四式传参与聚合、主键操作全解
本文详解MyBatis高频操作:分页查询(@Param、POJO、Map等4种传参方式)、聚合统计(如count)及主键回填(selectKey实现),强调规范性与效率,助开发者写出更安全、可维护的数据层代码。
24 1
|
1天前
|
SQL Java 数据库连接
MyBatis之核心对象与工作流程及SqlSession操作
本文详解MyBatis四大核心对象(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)及其协同工作流程,涵盖建造者/工厂/代理等设计模式应用,并演示如何通过SqlSession直接执行SQL,助力开发者深入理解框架底层机制。(239字)
25 0
MyBatis之核心对象与工作流程及SqlSession操作
|
1天前
|
人工智能 C语言
二级C语言题解:十进制转其他进制、非素数求和、重复数统计
本文详解三类经典编程题:十进制转任意进制(填空)、非素数求和(修改)与重复数字统计(设计),含完整代码、逐空分析及易错点解析,助你夯实C语言基础。
23 2
二级C语言题解:十进制转其他进制、非素数求和、重复数统计
|
1天前
|
存储 C语言
C语言二级题解:查找字母以及其他字符个数、数字字符串转双精度值、二维数组上下三角区域数据对调
本文详解C语言二级考试三类典型题:统计字母及非字母字符个数、数字字符串转双精度浮点数、二维数组上下三角区域数据对调。含题目解析、错误定位与完整代码,适合备考学生、中职生及编程爱好者提升实战能力。
38 1
C语言二级题解:查找字母以及其他字符个数、数字字符串转双精度值、二维数组上下三角区域数据对调
|
1天前
|
SQL Java 数据库连接
MyBatis之数据操作增删改查基础全解
本文详解MyBatis四大核心操作:增删改查及模糊查询。涵盖事务提交、参数绑定(#与$区别)、资源管理及接口-映射规范,并提供完整代码示例与最佳实践,助你快速掌握MyBatis基础应用。(239字)
25 0
MyBatis之数据操作增删改查基础全解
|
1天前
|
SQL 缓存 Java
MyBatis 之配置与映射核心要点解析
本文详解MyBatis核心配置文件(properties、settings、plugins、typeAliases、environments、mappers)与映射文件(resultMap、sql/include、特殊字符处理),助你掌握动态配置、自定义映射及SQL复用技巧。
24 0
MyBatis 之配置与映射核心要点解析

热门文章

最新文章