为什么做单元测试

文章来源

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

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

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!(当然这是代码的角度,而非功能和产品的角度)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值