盡管很早開始就不止一次得對自己說,單元測試!單元測試!單元測試! 但是依然失望得發現現在所遇到所有的煩惱幾乎都與測試有關。曾經要一個人三天內搞定一個論壇--功能還相當復雜:除了基本的crud發帖回帖搜索什么的還要有用戶分組、訪問權限、子論壇,等,現在想當時是什么讓我在撐過來的?是那一個個簡單難看弱智的testcase!在我看來一個不懂得tdd不理解測試先行不清楚怎么寫testcase的程序員就幾乎就不能算是個合格得程序員。這不是技術問題,是政治問題。尤其是在你發現你的已經離職的同事寫的一個極為復雜的自定義控件在使用的時候出現一大堆bug而你還要花一堆時間去糾正時的絕望。整個項目組沒人寫testcase?沒問題,我自己寫就行了----整個軟件框架模塊可測試性太低?沒問題,花點時間把重要的類解耦出來--時間來不及?更沒問題,磨刀不誤砍柴功。
明天打算給那些組件所有public的方法寫上測試用例--雖然花時間給別人的代碼寫測試是極為無聊的行為,但是現在我也認了,不能再這樣提心吊膽得寫代碼和手工測試了,寧可花上一個上午甚至更多的時間來寫用例搭建環境。Rod Johnson說得對極了,牛仔式真是編程害死:滿天飛的工廠模式、單例、靜態變量,什么注釋都沒有的監聽接口----最重要的是,沒有測試用例--乃還算程序員嗎?知道老子花了多少時間來拜讀修改重構step in,step over您的"大作"?holy shit.
Del.icio.us : java zqc test 單元測試