Java进阶7:Junit单元测试

发布于:2025-07-28 ⋅ 阅读:(9) ⋅ 点赞:(0)

Junit单元测试

什么是单元测试

  • 单元测试是针对最小功能单元编写测试代码
  • Java最小的功能单元是方法
  • 单元测试就是针对单个Java方法的测试

测试驱动开发TDD

在这里插入图片描述

  • 示例:计算阶乘
    • 可以直接编写一个main方法来调用方法进行测试等
  • 使用main方法测试的缺点
    • 只有一个main方法,不能把测试代码分离
    • 没有打印出测试结果和期望结果
    • 需要一种测试框架来辅助我们编写测试

单元测试的好处

  • 确保单个方法正常
  • 自动化,获得所有的报告
  • 如果修改了对应的方法,只需要确保对应测试单元通过
  • 代码本身就可以作为示例代码

Junit

  • 专门针对Java设计的框架
  • 标准的单元测试框架
  • 使用断言测试结果
  • 方便测试、查看结果
  • 便于集成到其他的框架和环境中,例如IDEA工具

Junit的测试

  • TestCase: 一个TestCase表示一个测试
  • TestSuite: 一个TestSuite包含一组TestCase,表示一组测试
  • TestFixture: 一个TestFixture表示一个测试环境
  • TestResult: 用于收集测试结果
  • TestRunner: 用于运行测试
  • TestListener: 用于监听测试过程,收集测试数据
  • Assert: 用于断言测试结果是否正确

定义两个方法进行单元测试

  • 这里定义了两个方法

在这里插入图片描述

  • IDEA集成了jUnit框架,因此不需要进行手工导入
  • 需要为测试的业务类编写对应的测试方法,方法必须公共、无参、无返回值
  • 测试方法使用@Test注解,然后调用测试代码进行测试
  • 选中测试方法开始运行,以进行测试,如果测试通过那么会变成绿色,否则就是红色

测试的一般步骤

  • 新增StringUtilTest.java

在这里插入图片描述

  • 编写测试类

  • 在测试方法添加上@Test注解,每定义一个测试方法,都需要使用@Test注解进行批注

在这里插入图片描述

  • 调用测试方法来启动测试

在这里插入图片描述

  • 启动测试

在这里插入图片描述

  • 查看测试结果的输出

在这里插入图片描述

  • 如果测试通过,并不代表方法的逻辑没有问题,可能是编写的测试方法水平不够导致没有能够测试出方法的bug,还需要结合实际来观察结果。
  • 因为在Junit中,他认为只要没有出现异常,就一定测试通过。

断言机制

  • 通过断言机制,可以让程序员输入期望的结果,从而确认到底是否存在bug
  • 比如这里期望得到4,如果不是4,就报错

![[./_resources/Junit单元测试3.resources/unknown_filename.png]]

  • 测试的结果如下

![[./_resources/Junit单元测试3.resources/unknown_filename.1.png]]

自动化测试

  • Junit测试可以直接整体运行测试类。
  • 通过测试类可以实现一键自动化测试。
  • 直接选择项目,RunAllTest来运行所有的测试类。

在这里插入图片描述

常用注解

  • Junit的常用注解

在这里插入图片描述

  • @Before,在每一个测试方法执行前触发

在这里插入图片描述

  • @After,在每个测试方法之后执行一次

在这里插入图片描述

  • @BeforeClass和@AfterClass,分别在所有测试方法之前和之后只执行一次,注解修饰静态方法

在这里插入图片描述
在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到