单元测试

https://zhuanlan.zhihu.com/p/387540827

编写优秀单元测试的三个原则

运行快速:

单元测试有两个好处:

  • 确定什么正常工作
  • 检测什么停止了工作

测试是用来运行的,每次运行,都能够反馈你代码的状况。
测试运行的越快,你就越早能注意到 bug,也不容易让人觉得运行测试是一件很麻烦的事情,不会只在每次发布之前或者每天结束的时候才运行。

要想测试运行得快,也就意味着必须:

  • 只测试独立的业务逻辑块;
  • 不要在你的主要测试中涉及到 UI、数据库或网络测试
  • 测试中不要使用 wait/sleep 语句。

小而专注:

在编写测试时,心里应时刻明确每个测试是用来检测什么错误的。

比如出现一个 bug,哪种情况你更喜欢:

  • 一个 bug -> 多个测试失败
  • 一个 bug -> 一个测试失败

相信大多数人都会选择第二种情况,因为这意味着你的测试重复度低,这样的测试通常你看一眼名字就知道是哪里错了。

也就是对于每一个错误,正好一个测试失败,并且测试名就描述了错误产生的原因。

也就意味着你应当:

  • 测试是多而小,而不是少而大的
  • 每个测试只测试一个功能点
  • 用测试的名称准确描述错误产生的原因

100%可靠

测试是你的安全带,要想 100% 发挥测试的威力,那就要 120% 的认真对待测试,保证测试自己是完全可靠的。

最浪费时间和令人泄气的事情,莫过于出现了一个 bug,所有的测试还都运行通过了。

因此对于测试来讲,最最重要的事情莫过于保证测试自己的正确可靠了。