Skip to main content

单元测试的好处

不靠运气编程

当我们在重构或者增减功能时,尽管测试了当前功能是否 ok,也很难保证没有影响到其他功能。

这个时候,也不可能去把其他功能都全部测试一遍。

这时,一般我们就交给测试人员去负责了。

那打比方,你破坏了部分旧功能,如果运气好,测试人员也测出来了。

如果运气不好,被破坏的功能被领导或客户发现。

以上就是靠运气编程。

但是如果我们对每个功能都写了测试,那旧功能里引入 bug 后,我们立马就能知道。

这样我们将不再依靠运气编程。

测试提高我们开发时的自信心,使项目真正具备了可维护性,可拓展性。

逆向改善程序设计

如果你的程序设计得很烂的话,你的单测也会很难写。

如果你要写单测的话,那你的程序设计得也要很良好。

程序设计需要:

  1. 单一职责
  2. 高内聚
  3. 低耦合

否则就会很难写单测。

重构

尽管大家大都由于害怕引入 bug,而不敢重构代码。

但重构代码却是异常重要的。

就像房屋一样,如果不随时维护,很快就会破旧不堪。

但如果有了测试的话,那就可以放心大胆地重构了。

因为一旦在老功能里引入了新的 bug,我们立马就能知道。

项目代码质量越低,添加新功能,修 bug 的难度也越大。

还技术债务的唯一办法就是重构

活文档

单元测试就是一个可执行的文档

你要带一个新人,有了单元测试之后,你也不需要去一步一步带他。

阅读源码的技巧之一就是,先去看它的测试。

Review 代码

同样,如果同事提交了一个添加新功能或修 bug 的分支,

我们怎么知道这些代码有没有影响到老功能呢?

我们不可能去测一遍之前的所有功能。

这时同样需要,单元测试去跑一遍之前的所有功能。

测试是项目代码质量非常重要的安全网