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