by winson, 7 months ago.
每一位程式員都討厭測試,相較於寫程式時那種解題的快感,測試簡直百般無聊。那麼,為什麼要測試?目的是為了程式碼的品質,品質不單單是測試人員的事,那是程式員基本的責任。
測試等於是一種背書,證明程式的任何環節毫無問題;測試可以帶給程式員信心,所以只要是我寫的程式,我就願意負責,而且我一定會對我寫的程式感到驕傲!!
先看看為何要用RSpec來進行測試,難道在Rails裡頭用他基本的unit test來作不行嗎?當然可以,只是測試的風格不同而已,但我認為風格很重要,風格可以改造想法,而想法可以改造程式!!
by winson, about 1 year ago.
Ruby on Rails在測試這一塊領域可說相當完整,在架構面有三種不同環境的設計,加上超方便的單元測試、功能測試、整合測試,搭配自動測試ZenTest、瀏覽器體驗測試Watir、連續整合CruiseControl.rb,當然還有最棒的RSpec,整體而言相當精巧、方便、簡單且務實。
如果要問還有沒有可以改進的空間,當然有,而且又是免費的Open Source。
當專案規模大或是同時進行多個專案的時候,一定需要整體性的報表,需要一份可以立即掌控整個測試狀況的報表。Tesly Jr.所提供的就是這種性質的免費服務,它本身也是用Ruby on Rails寫的Open Source軟體,所以你可以下載回去裝在自己家裡,或者也可以直接使用它所提供的免費服務,甚至也有需要付費的進階服務。
by winson, about 1 year ago.
什麼是Continuous Integration呢?
開發團隊用Subversion或CVS常會checkin一堆垃圾,什麼是垃圾呢?就是沒經過測試的程式,可能是下班前checkin或一段時間checkin。這些垃圾很有可能被別人checkout出去,時間一久,程式碼鐵定一團混亂。
Continuous Integration軟體做些什麼事呢?設定一定的時間間隔自動從Subversion/ CVS把程式拉出來測試(當然要先寫好test case)、自動build、自動通知相關人等。
這就是像是一台精密的儀器隨時監控程式碼的心跳(heartbeat),一但程式碼沒心跳就掛了。
by winson, about 1 year ago.
在Rails底下寫程式很容易不知不覺把時間花在測試上頭。
第一個原因是因為以Agile方式進行時,會先寫測試程式,再寫程式;只要通過測試程式這關,程式就差不多寫好了;在這種方式之下,測試程式很像是實際程式的導航系統,先把路線定好,照著走就對了。
第二個原因是Ruby/Rails的程式真的很好寫,很快就可以寫完一個功能,在沒事可做的情況下,就會想去加強測試項目,讓程式更加嚴謹。