落就是一道风景线

单元测试的那些事

| Comments

单元测试是在第一次面豆瓣时候被拒之后才开始接触的,那时候去网上g了此资料,感觉对各种“不可能出错的事情”测试是无聊到极致而又闲着蛋疼的人才会做的。之后也有实践,很长一段时间用”DDT”应付下形式,直到有1天……

今天,在豆瓣的HappyDay现场,来记录一下自己和unittest之间不得不说的几件事。

转变

在豆瓣入职之后很长一段时间里,@cnborn 和 @zchi 对unittest各种赞扬,也会刻意把一些需要unittest的事情给我来做,让我看各种TDD的书。但是这些都经历了以后,我依然对unittest不屑一顾。

事情的转机在是一个即将下班的6点,那天的状态实在是不好,代码也写的心不在焉,unittest也很给面子的报N多fail。我觉得有必要认真看下是什么情况,结果看到import error,查了下代码发现是自己把方法名给写错了,那种懊悔的心情真的很难形容……对,就是这样一个很低级的错误让我认识到了unittest真正的意义,于是也有意识的会把原来的DDT向TDD 转换。当然之后还会很多大小事件让我更加乐意去实践unittest,比如看下面——

重构

2012年初我做了一件特别有意义的开发任务——重构。其实就算是2个月后的现在,内心还是有些感慨。简单来说,这次重构的目的是为了摘掉ORM(关于ORM的坑,谁进去过谁知道……),改进代码质量,统一代码命名、风格等等。说来这是我第1次对项目整体性、系统性的重构,感谢cnborn~

重构的过程会让人成长很多,像一面放大镜,可以学到同事特别棒的代码写法,也会发现一些逻辑及各种xxoo的问题……当然,这些不是重点~重构过程中最怕的是没有unittest!!!在错综而又混乱的命名中实在理解不能,看到那些没有unittest的的实现,根本就是无从下手,各种想痛苦纠结……然后,怎样呢?补unittest的case,有几天时间我就是在疯狂的补写case(最后的case比重构前多了一倍,这都是后话了)。

没有unittest的代码真的会让重构或者维护的同事发疯的,没有unittest是对自己的代码对同事不负责任,只写实现不写unittest的人就是流氓兔!!

HappyDay

首先解释下,happyday是豆瓣工程师的盛大节日,绝对远超三八节于女同胞们、六一儿童节于宝宝们的意义。这里提到happyday,是因为今天的happyday的主题就是unittest。将电脑投放到大屏幕,各位coder轮流上去写代码,鸭梨很大有木有……我和zchi是我比赛小分队里第1组上场的,zchi写unittest我写实现。不知道zchi是怎样的状态,我上场整个过程中手都是在抖着,阿门。看来以后有机会应该多练习这种众人注目的鸭梨下写代码的能力 : )

@豆瓣 HappyDay 现场

Comments