一些方法和屬性被聲明為保護類型,我們在測試無返回值或被保護的方法時,繼承就能解決問題。為什么要測試被保護方法?我個人認為由于PHP是一種語法寬松的語言,因而必須進行更嚴格的測試,要從最底層確保方法的正確性。如果必要的話,也可以測試私有方法。
目錄結構
Lib
+- Math
+- Calculator.php
Tests
+- Math
+- AllTests.php
+- CalculatorTest.php
|- AllTests.php
|- Configure.php
執行所有測試
phpunit --verbose AllTests.php
phpunit CalculatorTest
phpunit Math
但是這里建議您在每個目錄下都寫一個測試套件AllTests.php文件,這么做可以為后期測試節省許多時間。因為如果你的項目中有幾十個甚至上百個文件或者目錄結構很深,將導致PHP腳本超出內存的錯誤,而且phpunit每次都需要花很長的時間來生成測試套件。
自動化測試
自動生成測試用例
phpunit --skeleton Calculator.php
該命令會生成一個CalculatorTest.php的測試用例,里面有兩個未完成的測試方法testAdd()和testMultiply(),你需要完善它。
如果你需要與其他項目集成或集成到IDE工具中,使用ant構建是個不錯的注意。
編寫ant構建文件,讓構建、測試、報告、清理一部到位。你可以將下面內容加入你的build.xml文件中。
使用以下命令執行任務:
ant test 執行測試
ant report 生成測試報告
ant clean 清理測試目錄
最佳實踐
每次編寫好類定義后,自動生成測試用例。實現類和測試用例。修改,執行測試,反復重復這個過程。每次修改后,馬上修改測試用例,以免之后忘記。
文章來源于領測軟件測試網 http://www.kjueaiud.com/