PHP單元測試?yán)?PHPUNIT初探第1/2頁
一旦你編寫好單元測試用例,當(dāng)你需要修改你的代碼時,你要做的事情就是重新運(yùn)行你的單元測試用例并觀察這些單元測試用例能否通過,如果通過了的話,證明代碼是沒問題的。
人們往往會說:既然單元測試這么好,為什么那么多人還是不大愿意去寫單元測試呢?有以下幾種理解上的誤曲:
1、認(rèn)為編寫單元測試太浪費(fèi)時間。雖然目前很多IDE工具都為編寫單元測試建立好了框架,但還是要開發(fā)者編寫一些單元測試的代碼的。就象很多開發(fā)中的最佳實踐一樣,用正確的方法去做正確的事情會為開發(fā)節(jié)省大量的時間。每當(dāng)新增加新功能時,你可能通過訪問你的網(wǎng)頁到處去點(diǎn)擊手動測試,而運(yùn)行建立好的單元測試用例其速度其實比通過手工去測試的速度更快。
2、認(rèn)為既然代碼能運(yùn)行了,不需要再編寫單元測試。但假設(shè)團(tuán)隊中有新的成員,如果沒有良好的單元測試用例,新成員很有可能隨意地去編碼而不考慮各種后果。如果有編寫良好的單元測試,在程序運(yùn)行時進(jìn)行各種測試,則能最大程度避免bug的產(chǎn)生。
3、認(rèn)為編寫單元測試代碼枯燥無味。程序員的天性是解決問題,而很多程序員認(rèn)為在緊張的編碼工作時,還要編寫單元測試代碼,會很枯燥。但要知道的是,如果能通過編寫單元測試在很早的階段就能盡可能發(fā)現(xiàn)代碼中多的錯誤的話,那么既節(jié)省時間減少了出錯,何樂而不為?
開始動手安裝phpunit
本文中將通過介紹php中的單元測試?yán)鱬hpunit(http://phpunit.de/),并通過實際例子來講解如何在實際工作中運(yùn)用phpunit。首先安裝phpunit的方法可以通過php下的pear去安裝:




如果你想通過手動方式去安裝,可以參考phpunit的手冊去安裝(http://www.phpunit.de/manual/3.0/en/installation.html)。
編寫第一個單元測試用例
下面我們開始編寫第一個單元測試用例。在編寫測試用例時,要遵守如下的phpunit的規(guī)則:
1 一般地,在測試用例中,可以擴(kuò)展PHPUnit_Framework_TestCase類,這樣就可以使用象setUp(),tearDown()等方法了。
2 測試用例的名字最好是使用約定俗成的格式,即在被測試類的后面加上”Test”,比如要測試的類為RemoteConnect,則測試用例的命名為RemoteConnectTest。
3 在一個測試用例中的所有的測試方法,在命名時都應(yīng)該以test+測試方法名去命名,如testDoesLikeWaffles(),要注意的是該方法必須是聲明為public類型的。當(dāng)然可以在你的測試用例中包含private的方法,但它們不能被phpunit所調(diào)用。
4 測試方法中是不能接收參數(shù)的。
下面首先舉個簡單的例子,代碼如下:

















上面的代碼其實是實現(xiàn)連接到一個指定的服務(wù)器的功能,那么我們可以編寫測試代碼如下:















在上面的代碼中,由于繼承了PHPUnit_Framework_TestCase類,因此在setUp和tearDown方法中,不需要編寫任何代碼。SetUp方法是在每個測試用例運(yùn)行前進(jìn)行一些初始化的工作,而tearDown則在每個測試用例運(yùn)行后進(jìn)行一些比如資源的釋放等工作。在測試方法中,通過使用phpunit的斷言assertTrue去判斷所返回的布爾值是否為真,這里是通過調(diào)用RemoteConnect.php中的connectToServe方法去判斷能否連接上服務(wù)器。
- Windows下安裝PHP單元測試環(huán)境PHPUnit圖文教程
- PHP單元測試?yán)?PHPUNIT深入用法(三)
- PHP單元測試?yán)?PHPUNIT深入用法(二)
- PHP單元測試PHPUnit簡單用法示例
- PHP單元測試框架PHPUnit用法詳解
- 使用PHPUnit進(jìn)行單元測試并生成代碼覆蓋率報告的方法
- php單元測試phpunit入門實例教程
- PHP使用phpunit進(jìn)行單元測試示例
- PHPUnit + Laravel單元測試常用技能
- Windows下wamp php單元測試工具PHPUnit安裝及生成日志文件配置方法
- laravel單元測試之phpUnit中old()函數(shù)報錯解決
- PHPUnit 單元測試安裝與使用入門教程
相關(guān)文章
PHP實現(xiàn)把數(shù)字ID轉(zhuǎn)字母ID
以下是對使用PHP把數(shù)字ID轉(zhuǎn)字母ID的實現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下2013-08-08在mysql數(shù)據(jù)庫原有字段后增加新內(nèi)容
在mysql數(shù)據(jù)庫原有字段后增加新內(nèi)容2009-11-11PHP基于GD庫實現(xiàn)的生成圖片縮略圖函數(shù)示例
這篇文章主要介紹了PHP基于GD庫實現(xiàn)的生成圖片縮略圖函數(shù),涉及php針對圖片屬性相關(guān)操作技巧,需要的朋友可以參考下2017-07-07php 廣告調(diào)用類代碼(支持Flash調(diào)用)
php 廣告調(diào)用類代碼(支持Flash調(diào)用),非常方便php頁面中加載廣告。需要的朋友可以參考下。2011-08-08PHP轉(zhuǎn)換文件夾下所有文件編碼的實現(xiàn)代碼
本篇文章是對PHP轉(zhuǎn)換文件夾下所有文件編碼的實現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06PHP中mb_convert_encoding與iconv函數(shù)的深入解析
本篇文章是對PHP中mb_convert_encoding與iconv函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06