实训报告4:JUnit单元测试实训

JUnit单元测试实训报告

  • 基本信息

名称:

JUnit单元测试

时间:

4月22日

测试人:

学号:

年级专业班级:

22级软件工程专业1班

目标:

理解JUnit作为白盒测试工具的本质,通过编写代码验证方法逻辑的正确性,关注程序内部执行路径的覆盖‌。

学习JUnit的核心注解(@Test、@Before、@After)和断言方法(如Assert.assertEquals),实现测试用例的独立执行与结果验证‌。

构建自动化测试能力,提升持续集成与高质量交付工程能力‌。

  • 测试思路与测试环境
  1. 测试思路的具体说明:本次实训围绕一个 Triangle 类进行单元测试,该类用于根据三边判断三角形类型,并计算周长和面积。使用 JUnit Jupiter API 编写测试用例,测试内容包括:构造函数对非法输入的处理、周长和面积计算的准确性、不同三边组合下三角形类型的判断、toString() 方法返回值的正确性。通过设计多组边界值和典型值测试用例,验证软件逻辑的正确性和完整性。
  2. 测试环境的具体说明:
    1. 开发工具 :IntelliJ IDEA 2024.1.2
    2. 测试框架 :JUnit 5.10.2
    3. 编程语言 :Java 19
    4. 操作系统 :Windows 11
  • 测试内容
  1. 测试对象分析说明
    1. 类名: org.example.Triangle
      1. 该类包含以下主要功能:通过构造函数设置三角形三边并校验有效性(不在1~100之间抛出异常)
      2. 根据三边判断三角形类型:
        1. Equilateral(等边)
        2. Isosceles(等腰)
        3. RightAngled(直角)
        4. General(一般三角形)
        5. NoTriangle(不能构成三角形)
        6. NoValidTriangle(无效三角形)
      3. 计算周长和面积:返回三角形类型的中文描述字符串
      4. 被测方法:
        1. getType():判断三角形类型
        2. getArea():计算面积
        3. getCircumference():计算周长
        4. toString():返回类型中文名称
  2. 测试步骤说明
    1. 对失败用例进行分析,定位问题原因。
    2. 执行所有测试用例,记录运行结果。
    3. 使用Assertions类中的断言方法进行预期结果与实际结果的比对。
    4. 利用JUnit编写测试类TriangleTest,使用@Test注解标记测试方法。
    5. 编写Triangle类,实现各类三角形判断逻辑及计算功能。
    6. 在IDEA中创建Maven项目,添加JUnit5依赖。
  3. 具体的测试用例列表

编号

测试方法

输入数据

预期输出/行为

实际结果

备注

1

getType01

101,101,101

抛出Exception

✅ 成功

边长超出范围

2

getType02

50,50,50

返回Equilateral

✅ 成功

等边三角形

3

getType03

3,4,8

返回NoValidTriangle

❌ 失败

实际返回General

4

getType04

3,3,4

返回Isosceles

✅ 成功

等腰三角形

5

getType05

3,4,5

返回RightAngled

✅ 成功

直角三角形

6

getType06

2,3,4

返回General

✅ 成功

一般三角形

7

getArea

3,4,5

返回6.0

✅ 成功

符合海伦公式

8

getCircumference

3,4,5

返回12

✅ 成功

周长=3+4+5=12

9

testToString

3,4,5

返回"直角三角形"

✅ 成功

toString结果正确

  • 测试结果与分析
  1. 单元测试结果
    1. 共执行 9 个测试用例,其中:
      1.  ✅ 成功:8个
      2. ❌ 失败:1个(getType03)
  2. 具体分析内容
    1. ✅ 成功用例分析
      1. 所有合法输入均能正确识别为对应三角形类型。
      2. 异常处理机制有效拦截超范围输入。
      3. 数学计算准确无误,符合几何公式。
    2. ❌ 失败用例分析
      1. 失败测试:getType03(输入3,4,8)
      2. 预期返回 NoValidTriangle,
      3. 实际返回 General
      4. 原因分析:在 getType() 方法中,判断是否能构成三角形时错误地使用了逻辑或 (||),导致只要满足其中一个条件就认为是有效三角形。
      5. 正确逻辑应为:任意两边之和大于第三边,即三个条件必须同时成立(&&)
  3. 总结本次测试基本覆盖了 Triangle 类的所有功能模块,整体逻辑较为合理。但在三角形合法性判断部分存在逻辑漏洞,导致部分非法输入被误判为有效三角形。建议后续版本中修复此逻辑错误以提高代码健壮性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值