PHPUnit是一個輕量級的PHP測試框架。它是在PHP5下面對JUnit3系列版本的完整移植,是xUnit測試框架家族的一員(它們都基於模式先鋒Kent Beck的設計)。
單元測試是幾個現代敏捷開發方法的基礎,使得PHPUnit成為許多大型PHP專案的關鍵工具。這個工具也可以被Xdebug擴展用來產生程式碼覆蓋率報告 ,並且可以與phing整合來自動測試,最後它還可以和Selenium整合來完成大型的自動化整合測試。
優點
1、它是一種驗證行為。
程式中的每一項功能都是測試來驗證它的正確性。它為以後的開發提供支援。就算是開發後期,我們也可以輕鬆的增加功能或更改程式結構,而不用擔心這個過程中會破壞重要的東西。而且它為程式碼的重構提供了保障。這樣,我們就可以更自由的對程序進行改進。
2、它是一種設計行為。
編寫單元測試將使我們從呼叫者觀察、思考。特別是先寫測試(test-first),迫使我們把程式設計成易於調用和可測試的,即迫使我們解除軟體中的耦合。
3、它是一種寫文件的行為。
單元測試是一種無價的文檔,它是展示函數或類別如何使用的最佳文檔。這份文件是可編譯、可運行的,而且它保持最新,永遠與程式碼同步。
4、它具有回歸性。
自動化的單元測試避免了程式碼出現回歸,編寫完成之後,可以隨時隨地的快速執行測試。
實作
什麼時候測試?
單元測試越早越好,早到什麼程度?
極限程式設計(Extreme Programming,或簡稱XP)講究TDD,即測試驅動開發,先寫測試程式碼,再進行開發。在實際的工作中,可以不必過度強調先什麼後什麼,重要的是高效和感覺舒適。
從經驗來看,先編寫產品函數的框架,然後編寫測試函數,針對產品函數的功能編寫測試案例,然後編寫產品函數的程式碼,每寫一個功能點都執行測試,隨時補充測試用例。
所謂先寫產品函數的框架,是指先寫函數空的實現,有回傳值的直接傳回一個適當值,編譯通過後再寫測試程式碼,這時,函數名稱、參數表、傳回類型都應該確定下來了,所寫的測試程式碼以後需修改的可能性比較小。
單元測試與其他測試不同,單元測試可看作是編碼工作的一部分,應該由程式設計師完成,也就是說,經過了單元測試的程式碼才是已完成的程式碼,提交產品程式碼時也要同時提交測試程式碼。測試部門可以作一定程度的審核。
請務必看完官方文件:https://phpunit.de/manual/current/zh_cn/index.html。
以上是php中的單元測試是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!