单元测试
https://zhuanlan.zhihu.com/p/387540827
编写优秀单元测试的三个原则
运行快速:
单元测试有两个好处:
- 确定什么正常工作
- 检测什么停止了工作
测试是用来运行的,每次运行,都能够反馈你代码的状况。
测试运行的越快,你就越早能注意到 bug,也不容易让人觉得运行测试是一件很麻烦的事情,不会只在每次发布之前或者每天结束的时候才运行。
要想测试运行得快,也就意味着必须:
- 只测试独立的业务逻辑块;
- 不要在你的主要测试中涉及到 UI、数据库或网络测试
- 测试中不要使用 wait/sleep 语句。
小而专注:
在编写测试时,心里应时刻明确每个测试是用来检测什么错误的。
比如出现一个 bug,哪种情况你更喜欢:
- 一个 bug -> 多个测试失败
- 一个 bug -> 一个测试失败
相信大多数人都会选择第二种情况,因为这意味着你的测试重复度低,这样的测试通常你看一眼名字就知道是哪里错了。
也就是对于每一个错误,正好一个测试失败,并且测试名就描述了错误产生的原因。
也就意味着你应当:
- 测试是多而小,而不是少而大的
- 每个测试只测试一个功能点
- 用测试的名称准确描述错误产生的原因
100%可靠
测试是你的安全带,要想 100% 发挥测试的威力,那就要 120% 的认真对待测试,保证测试自己是完全可靠的。
最浪费时间和令人泄气的事情,莫过于出现了一个 bug,所有的测试还都运行通过了。
因此对于测试来讲,最最重要的事情莫过于保证测试自己的正确可靠了。