没写过单元测试的人对写单元测试排斥是很正常的,因为本人亲身体会过。对于当时的我来说程序跑通了,数据库的数据正常的增删改了,前台也显示正常了,不就行了吗,为啥还要浪费时间再写一些傻乎乎的代码,而且还觉得写这个东西 就是没事找事干的人。但是在这个行业干了一年多以后才发现我以前的想法真的是幼稚的可笑。现在我说一下单元测试的好处。
1.单元测试可以减少你后期找bug的次数和修复bug的时间,对于爱装13的小伙伴们来说,你可以咧着嘴自信的说,我写的程序绝对没问题。
2.单元测试的代码量是很少的(除去测试数据的准备),而且接近于傻瓜式的,如果你觉得你的某个单元测试太难,太复杂了,那么唯一的方式就是去改动你的业务代码,实践证明这种代码90%是需要重构的,因此常写单元测试的程序员,代码质量越来越高,程序耦合度也越来越低,项目的质量就上去了,你也就越来越牛逼了。
3.有单元测试的代码,在一定程度上是很有保障的代码,至少你不会有上线后才出现低级错误的尴尬
4.单元测试可以及早的暴露一些隐藏的问题,防止那种后期才发现问题后,大成本的去改代码的费神事了。
5.单元测试,可以延长项目的生命期。因为一个项目的开发人员是经常变更的,我走了,你来了,在一个公司是很正常的。每个人都有自己的编程风格和习惯,有老手也有新手,没单元测试的话,大家就随便发挥了,只要结果出来了就好了,那么这个项目的代码将会越来越乱越来越烂。而单元测试可以在一定程度上约束这种事情的发生。
对于java来说 单元测试已经很成熟了,我写的项目里用的框架有junit,dbunit,mockito,jmock等。