单元测试的基本原则

  • 宏观上的AIR 原则
    • Automatic,全自动执行,无需人工校验,使用断言
    • Independent 用例间不能相互调用
    • Repeatbale 可重复执行,不受外界影响,不依赖外部的网络、服务、中间件等
  • 微观上的BCDE原则
    • Border 边界值测试
    • Correct 正确的输入,并得到预期的结果
    • Design 根据设计文档来编写单元测试
    • Error 单元测试的目标是证明程序有错,而不是程序无错。为了发现代 码中潜在的错误 , 我们需要在编写测试用例时有一些强制的错误输入(如非 法数据、异常流程、非业务允许输入等)来得到预期的错误结果

  • Mock

    单元测试覆盖率


Junit5

组成部分

  • Junit Platform JVM上启动测试框架,统一命令行、maven、gradle等方法执行的入口
  • Junit Jupiter 包含 Junit5 全新的编程框架和扩展机制
  • Junit Vintage 用于在全新的框架中兼容Junit4和Junit3的测试用例

测试注解

Screen Shot 2021-02-18 at 8.02.18 PM.png

断言方法

org.junit.jupiter.api.Assertions

  • fail
  • assertTrue assertFalse
  • assertEquals
  • assertSame
  • assertThrows assertDoesNotThrow
  • assertAll
  • AssertJ 更强大的断言

流式断言