昨天我們公司的3M team 的新人們在隔壁的辦公室KT, 身為新人的我也跑過去,一看在講JUnit,聽了一會兒,
講了很多Assert云云的東西,我想到了一點,為什么不先說說為什么要JUnit,否則我想任何人都在會和我一開始學Junit時候一樣,認為不霄一顧,想著
總想著這些東西,我用equals,print的組合都能實現的,更可以嵌在代碼本身,何必又獨立出來。
到這里大家知道我想說什么,我想說的是TDD的重要性。產生于XP的TDD,呵呵,(不知道我們敏捷開發組的同僚們用不用),這個TDD的思想是這樣的
我們不應該完成開發之后再去寫測試,這通常只是馬后炮,測試的本質上相當于設計文檔,而不是花大量的時間去擺弄一個復雜的圖形化工具,
你要直接在代碼里擬畫一個類。開始時候先為一些小功能模塊編寫測試。很多情況下,測試不能編譯,因為類本身不存在。
所以我們要做的就是用最少量的代碼完成這個類,以便通過測試,并增加更多的測試。這里說一下,xp編程中,基本過程是這樣的:
構思->編寫測試代碼->編寫代碼->測試,而且編寫測試和編寫代碼都是增量式的,寫一點測一點,
在編寫以后的代碼中如果發現問題可以較塊的追蹤到問題的原因,減小回歸錯誤的糾錯難度。
(回歸讓我想到了回溯的算法,嘿嘿,大學的噩夢)
于是測試框架來了,--JUnit,衍生到XUnit,請開始使用他們巴。那位寫Taconite的Ryan Asleson說:測試會上癮的,一開始接觸JUnit的人都心存疑慮
但是最后都會愛上他們。因為當你發現增加新的特性只需要幾分鐘的測試過程的時候,你就會意識到今天我們所說的。
最后說一下JsUnit,據我看用的人很少,說白了是Junit的JS版本,自然也是RTF(Regression Testing Framework)的東東,,很多用法都差不多,不過它是基于函數的,不是方法哦
地址www.edwardh.com/jsunit,弱弱的問一下,有人用這個來測試ajax嗎?嘿嘿!
明天又要去看可惡的BPM文檔了。