为什么做单元测试

文章来源

单元测试到底是什么?应该怎么做?

代码的终极目标有两个,第一个是实现需求,第二个是提高代码质量和可维护性。

1.如果代码很简单,比如helloworld程序,可维护性很高,完全没有必要使用单元测试。

2.代码稍微复杂一些,如一个简单计算器,实现加减乘除运算,首先程序已实现了需求,如果你想加一个求平方根的功能,轻而易举就能做到,单元测试也是没有必要的。

3.做一个实用系统,如图书管理系统。虽然代码量和复杂度都增加了,但你使用了工具库MVC框架

基于MVC模型,你的代码被很好的分割成了很多小的独立的模块:4个Controller,2个Model,4个View。并且在工具库的帮助下,代码量得到了缩减,每个模块大概只有50行代码(等同于一个简单计算器的代码量)。

这个系统实现了需求,可维护性也很高,也没必要进行单元测试。

4.公司的大型库存管理系统

使用你掌握的MVC框架和一些库,实现了需求。你写了30个Controller, 50个Model,50个View,每个模块的代码都达到了大概150行,总代码达到了惊人的20000行!

你发现了面向对象编程(OOP),或函数式编程(FP),把一个模块里的150行堆砌在一起的代码再提取成1个对象的15种方法,或者15个独立的函数,OOP或FP像MVC模型一样,成功的把你的代码分割成了更小的组成部分,每个方法或函数里代码都只有10行左右,你几乎回到了“Hello World”时代。

你需要单元测试吗?(你能保证你的系统没有BUG吗?)

这个复杂系统是由1950个函数和方法组成,如果想要确定系统整体没有BUG,就等同于确定组成这个系统的1950个函数和方法没有BUG。
而单元测试就是做这个事情的,显而易见,如果你写了单元测试,并且每个函数都通过了,你就可以骄傲的说:这个系统没有BUG!(当然这是代码的角度,而非功能和产品的角度)

单元测试的威力更多不是体现在新代码的编写上,而是对已有代码的更改。

猜你喜欢

转载自blog.csdn.net/weixin_43222191/article/details/105034992