《Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结吧,出发点是是码出高效,码出质量。
为什么会有
Java
开发手册
本次一起来学习单元测试的编码规范
AIR
原则。说明:单元测试在线上运行时,感觉像空气(
AIR
)一样感觉不到,但在测试质量的保障上,却是非常关键的。好的单元测试宏观上来说,具有自动化、独立性、可重复执行的特点。
A:Automatic
(自动化)I:Independent
(独立性)R:Repeatable
(可重复)System.out
来进行人肉验证,必须使用 assert
来验证。AssertThat
反例:method2
需要依赖 method1
的执行,将执行结果作为 method2
的输入。
说明:单元测试通常会被放到持续集成中,每次有代码 check in
时单元测试都会被执行。如果单测对外部环境(网络、服务、中间件等)有依赖,容易导致持续集成机制的不可用。
正例:为了不受外界环境影响,要求设计代码时就把 SUT
的依赖改成注入,在测试时用 spring
这样的 DI
框架注入一个本地(内存)实现或者 Mock
实现。
src/test/java
,不允许写在业务代码目录下。DAO
层,Manager
层,可重用度高的 Service
,都应该进行单元测试。BCDE
原则,以保证被测试模块的交付质量。ENTERPRISE_INTELLIGENCE _UNIT_TEST
_的前缀来标识单元测试相关代码。
说明:多层条件语句建议使用卫语句、策略模式、状态模式等方式重构。