PHPUnit單元測試系列一 -- 單測的意義

均爲自己粗淺理解,如有紕漏愚見望指出,轉載請註明引用,提高自身素質,從我做起。

一、介紹

         一年多學習,對單元測試有較大進步的學習。主要是在框架、開發效率、代碼質量、持續集成方面有較多學習。

         單測是對最底層的代碼進行測試,如果做好了,那麼效果是最明顯,而且收益相比其他層級的測試是更加明顯的。主要體現在:定位成本低,快速反饋、持續開發。

        

二、單測的收益

單測的意義在於輔助開發人員,如果單測能夠提高開發的效率,這是最好。比如,你可以通過簡單的單測就可以確定某次的修改是不是OK的。成本極低。相反,如果讓測試人員去做,那麼還需要一段時間才能夠得到結果。


         定位成本低:對於好的單測,覆蓋率將會很高,甚至在邏輯覆蓋上都能夠有很高的覆蓋。然後,哪天有個新人修改了一句代碼,看是沒問題,但是有可能沒修改完整。在實際環境中,可能報了個錯誤,你要定位這問題,可能花費很長的時間。而在單測中,調試不需要依賴環境,很快就可以定位出來。

         快速反饋:case越多,收益越高。好的團隊是頻繁修改提交代碼,怎麼確定是否影響其他功能,單測就是很好的途徑。單測的運行,就是代碼的執行,速度很快,不像selenium速度會很慢。

         持續開發:這個和定位成本低有關係,前人做好了測試的積累,後來修改代碼可以很快確定修改的結果。開發效率當然會上去了。

可惜目前的團隊角色劃分特別明顯,不能夠親自嘗試開發,以後必要找小型的敏捷團隊,親自嘗試TDD。對單元測試在TDD中的重要性,便不發表評論。

 

三、php的單測

每種語言都有對應的單元測試,目前,我接觸過的有php及gtest兩種。不同的語言,做的單測都是有點區別的。PHP注重在其框架,使用PHP的場景都是WEB應用,基本都是MVC的結構。對於此類的單測,便和C++方面的單測有不小的區別。
PHP的單測,注重與框架結合,還有強大的mock。

四、如何編寫好的單測

本來沒有這個章節,不過,還是要說明下。良好的代碼編碼風格,會讓單元測試非常的簡單。以我這一年多的經驗,我單測工作的一部分時間,都糾結在一些非常噁心的代碼編碼風格。
代碼寫得好,單測就會更加的好寫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章