Junit5单元测试

本文介绍了单元测试的核心原则AIR和BCDE,并详细讲解了Junit5的测试覆盖率、注解使用以及断言和假设。通过Junit5的@Nested、@Tag等注解实现更灵活的测试组织,使用AssertJ增强断言能力,提高测试质量。
摘要由CSDN通过智能技术生成

单元测试理念


单元测试的基本原则

宏观上,符合AIR原则

  • A: Automatic(自动化)
    • 需全自动执行,不需要人工介入检查
    • 不允许使用System.out进行人工验证,用断言
  • I:Independent(独立性)
    • 测试用例不允许互相调用
    • 不允许出现执行次序的依赖
  • R:Repeatable(可重复)
    • 每次代码修改后,可以重复利用测试用例

微观上,符合BCDE原则

  • B:Border,边界测试
    • 包括循环边界,特殊取值,特殊时间点,数据顺序
  • C:Correct,正确
    • 正确的输入,得到预期输入
  • D:Design
    • 与设计文档相结合
  • E: Error
    • 进行一下错误输入检测预期的错误结果

单元测试覆盖率


粗粒度覆盖率

  • 类覆盖
  • 方法覆盖

细粒度覆盖率

  • 行覆盖
    • 行覆盖率的计算公式的分子是执行到的语句数,分母是总的可执行语句
  • 分支覆盖率
  • 条件判定覆盖
  • 条件组合覆盖
  • 路径覆盖

Junit5系列


介绍

  • JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage
    • JUnit Platform 作为在JVM上启动测试框架的基础。
    • JUnit Jupiter 是新的编程模型和扩展模型的组合,JUnit 5中类都在此包中
    • Unit Vintage 为在平台上运行基于JUnit 3和JUnit 4的测试提供了一个测试引擎。
Maven导入Junit5
<dependencies>
   <!--导入Junit5依赖-->
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-launcher</artifactId>
        <version>1.2.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>5.2.0</version>
        <scope>test</scope>
    </dependency>
    <dependency
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值