单元测试的基本原则
- 宏观上的AIR 原则
- Automatic,全自动执行,无需人工校验,使用断言
- Independent 用例间不能相互调用
- Repeatbale 可重复执行,不受外界影响,不依赖外部的网络、服务、中间件等
- 微观上的BCDE原则
- Border 边界值测试
- Correct 正确的输入,并得到预期的结果
- Design 根据设计文档来编写单元测试
- Error 单元测试的目标是证明程序有错,而不是程序无错。为了发现代 码中潜在的错误 , 我们需要在编写测试用例时有一些强制的错误输入(如非 法数据、异常流程、非业务允许输入等)来得到预期的错误结果
- Border 边界值测试
-
单元测试覆盖率
Junit5
组成部分
- Junit Platform JVM上启动测试框架,统一命令行、maven、gradle等方法执行的入口
- Junit Jupiter 包含 Junit5 全新的编程框架和扩展机制
- Junit Vintage 用于在全新的框架中兼容Junit4和Junit3的测试用例
测试注解
断言方法
org.junit.jupiter.api.Assertions
- fail
- assertTrue assertFalse
- assertEquals
- assertSame
- assertThrows assertDoesNotThrow
- assertAll
- …
AssertJ 更强大的断言
流式断言