Effective Unit Test
2021-05-06 19:47:14
0
举报
《Effective Unit Test》思维导图笔记
第一部分:基础
测试承诺
作为开发工具
测试驱动开发
[测试]->[开发]->[重构]
寻求优秀
独立的测试
小心
时间
随机数
并发性
基础设施
现存数据
持久化
网络
专业工具
测试替身
类型
测试桩Stub
伪造对象Fake
测试间谍Spy
模拟对象Mock
指南
准备->执行->断言
给定->当->那么
注入依赖
模拟对象-注入->测试对象
setConnect(conn)
getConnect()
第二部分:目录
可读性
方法粒度
逻辑分割
过度分散,增加认知负担
何时内联数据?
若短小,则内联之
若过长,则数据构建器
若不便,则文件
仅必要的数据
相同package下
魔法数字
冗长安装
过度保护
可维护性
脆弱的测试
残缺的文件路径
永久的临时文件
沉睡的蜗牛
像素完美
参数化混乱
方法间缺内聚
可信赖
注释掉的测试
歧义注释
永不失败
轻率承诺
降低期望
平台偏见
有条件的测试
第三部分:消遣
可测试的设计
What?
可测设计
小心 new
避免
复杂的私有方法
final 方法
static 方法
单例
服务查找
其他JVM语言
加速执行
追求速度
加速测试代码
Thread.sleep()
基类膨胀
setup/teardown无效?重复?
Database
加速构建