最近读到一篇深得我心的文章 Design for Testability 核心一句话概括就是:
Optimize your code for testability
为了可测试性而优化你的代码.
这样不仅可以提升测试的质量, 也可以提升代码的质量, 文中提出几个收益:
A preference for pure functions over immutable data
会为了好写测试而偏重于写一些 pure function
Small modules with well-defined interfaces
模块化也会做的好.
A separation of IO and computation
IO 相关逻辑与计算逻辑会分开
Explicit declaration of dependencies
会有明确的依赖的声明, 便于测试
后续作者还补充了一篇 How I Test, 也值得一读. 不过这事儿还是要靠实践, 对吧.
扩展一下, 还可以读读 Microservice Testing: Introduction, 提出要 Build a Testing Culture
, 也蛮有道理的.
总之一句话, 不写测试的代码都是垃圾.