成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網
最全最豐富的資訊網站

聊一聊PHP中單元測試工具PHPUnit的用法

單元測試是指對軟件中的最小可測試單元進行檢查和驗證。本篇文章帶大家了解一下php如何實現單元測試,介紹一下安裝單元測試工具PHPUnit并使用的方法。

聊一聊PHP中單元測試工具PHPUnit的用法

朋友,你聽說過安。。。不是,寫過單元測試嗎。

單元測試是開發過程中必不可少的一環,一個項目有良好的單元測試代碼,重構的勇氣都大很多。這次寫一篇小文來介紹一下 PHP 的單元測試工具 PHPUnit 的使用。

PHPUnit 的使用并不難,這篇文章主要還是充當一個引子,介紹基本概念和使用,有了這篇文章的基礎之后,去看官網的文檔就會更加順風順水。

安裝

安裝 PHPUnit 的方式很簡單,使用 composer 可以一行代碼就可以安裝。

composer require --dev phpunit/phpunit

安裝之后,在 vendor/bin 目錄下有一個 phpunit 的可執行文件,這個就是 phpunit 本體了。假設我們項目的目錄結構如下:

?  phpunit tree .  ├── controller ├── model ├── service ├── test └── vendor ├── composer.json

其中我們的單元測試代碼都放在 test 目錄下。使用 composer 來為我們解決 autoload 的問題。

{   "autoload": {     "psr-4": {       "Controller\": "controller/",       "Model\": "model/",       "Service\": "service/",       "Test\": "test/",     }   }, }

如果你還不懂 composer 自動加載的使用,可以參考這篇文章。最后執行 composer dumpautoload -o 讓自動加載生效。

到這里我們的安裝就算結束了。如果你使用 phpstorm 進行開發,那么你需要進行如下的配置:

聊一聊PHP中單元測試工具PHPUnit的用法

這里指明了從哪里加載 PHPUnit,由于我們使用 composer 安裝,所以,這里的文件選擇 composer 生成的 autoload.php 文件即可。

使用

好了,假設我們現在進行開發,在 service 目錄中添加了一個 CalculateService 的文件,并且編寫了一個 abs 的函數。

namespace Service;  class CalculateService {     public function abs($num)     {         return abs($num);     } }

現在我們對 abs 函數進行單元測試,PHPUnit 規定了一個測試類必須遵守如下的規定:

  • 單元測試類名必須以 Test 結尾,必須繼承 PHPUnitFrameworkTestCase 基類。
  • 每個測試函數必須以 test 開頭。

上面的規定是必須遵守的,如果代碼沒有遵守規定 PHPUnit 不會把他當做單元測試代碼。除了以上的兩條,還有一些良好的編碼習慣可以參考:

  • 單元測試代碼都放在 test 目錄下。
  • 每個單元測試類以被測試的類名開頭。例如被測試類為 CalculateService,那么單元測試類應該為 CalculateServiceTest
  • 每個單元測試函數應該為被測試函數名結尾。例如被測試函數為 abs,那么單元測試函數應該為 testAbs

根據上面的規范,編寫單元測試代碼

class UserServiceTest extends PHPUnitFrameworkTestCase {     public function testAbs()     {         $userService = new ServiceCalculateService();         $this->assertEquals(4, $userService->abs(4));     } }

在上面的測試代碼中,調用了我們要測試的函數 abs,然后斷言 $userService->abs(4) 的結果為 4。在 phpstorm 中直接在 testAbs 函數處右鍵選擇 run UserServiceTest 執行:

聊一聊PHP中單元測試工具PHPUnit的用法

發現在控制臺會輸出如下內容

Time: 17 ms, Memory: 4.00MB  OK (1 test, 1 assertion)

表明 abs 通過了 $userService->abs(4) == 4 的測試用例。這里注意一點,這里并不表明 abs 函數已經通過測試,一個良好的測試應該包含多個測試用例來覆蓋盡可能多的可能性。

現在 PHPUnit 基本的單元測試已經運行成功了,在 PHPUnit 的文檔中,有

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
丰满少妇人妻无码| 欧美怡春院一区二区三区| 把腿张开老子臊烂你的动漫| 我妽让我满足她啪啪| 久久亚洲AV无码精品色午夜麻| 不屈的儿媳妇电视剧汉语版| 亚洲香蕉成人AAAV在线网站| 欧美亚洲精品中文字幕乱码| 六十路垂乳熟年交尾| 豆国产97在线 | 亚洲| 中文字幕三级人妻无码视频| 真人一进一出抽搐GIF免费动图| 无码少妇一区二区三区芒果| 欧美午夜成人精品| 精品国产一区二区三区无码| 成人无码网WWW在线观看| 伊人久久大香线蕉成人| 亚洲妇女无套内射精| 日韩欧美亚洲每日更新在线 | 啊~每一次都撞到最里面| 成熟人妻AV无码专区| 最新在线精品国产福利| 亚洲欧美在线制服丝袜国产| 伊人依成久久人综合网| 中国女人黑森林毛耸耸| 中文字幕久无码免费久久| ぱらだいす天堂中文WWW| 宝贝腿抬高点让我爽一点麻豆| 亚洲人成人无码www在线观看| 在线看片无码永久AV| 亚洲AV网站在线观看| 色天天躁夜夜躁天干天干| FREEHDⅩXXXXSEX| 亚洲无线一二三四区手机| 中国老熟妇自拍HD发布| 菠萝蜜视频在线观看入口| 国产女人18毛片水真多18精品| 久久精品蜜芽亚洲国产AV| 欧美人与动牲猛交XXXXBBB| 军人边走边吮她的花蒂| 久久A级毛片免费观看| 女女互揉吃奶揉到高潮AV| 久久久久琪琪去精品色无码| 欧美成人精品手机在线| 老师黑色双开真丝旗袍恩施MBA| 久久久99精品成人片| 全部免费毛片在线播放| 午夜福制92视频| 少妇久久久久久久久久| 少妇人妻88久久中文字幕| 亚洲国产精品无码第一区二区三区| 色婷婷AV一区二区三区浪潮 | 久久婷婷成人综合色综合| 久久精品人人槡人妻人人玩AV| 欧美成人一区二区三区在线观看| 天堂√中文最新版在线中文| 丝袜一区二区三区在线播放| 亚洲高清成人AV电影网站| BT天堂А√天堂资源地址| 国产强被迫伦姧在线观看无码| 老头边吃奶边弄进去呻吟| 少妇人妻偷人精品一区二区| 色WWW亚洲国产阿娇| 亚洲丰满性熟妇ⅩXXOOO太阳| 99精品一区二区三区无码吞精 | 久久久久久久精品妇女99| 少妇极品丰满人妻无码视频| 野花影视大全在线观看免费高清| 一边亲着一面膜下奶怎么回事| 中国熟妇色XXXXⅩ老妇| 18日韩xxxx| 国产成人乱色伦区小说| 国内极度色诱视频网站| 欧洲精品一线二线三线区别| 亚洲国产不卡久久久久久| 成年女人毛片视频免费| 久久婷婷五月综合色区| 色欲aⅴ精品一区二区三区浪潮| 人妻久久久精品99系列A片 | 亚洲一卡一卡二新区无人区| 丰满的少妇愉情HD高清果冻传媒| 狼人大香伊蕉国产WWW亚洲| 西西人体44RT NET毛最多| JIZZJIZZ亚洲日本少妇| 丰满少妇高潮惨叫在线观看| 久久久久久伊人高潮影院| 无码免费伦费影视在线观看| www.comAV在线观看| 久久精品影视免费观看| 小12箩利洗澡无码视频网站| おまえの母亲をだます怎么读| 久久久久久久精品无码AV少妇| 无码AV免费网站| 被公疯狂进入的美丽人妻| 麻豆国产成人AV在线播放| 亚洲AV无码精品无码麻豆| 亚洲AV午夜精品一区二区三区| 啊灬啊灬高潮来了…视频APP| 久久久AV波多野一区二区| 小雪被老汉玩遍各种方式| 又小又紧女MAGNET| 国产亚洲欧洲网友拍| 免费A级毛片无码免费视频APP | 国产精品无码AV无码| 欧美老熟妇又粗又大| 亚洲AV六月丁香七月婷婷| 粉嫩虎白女流水白浆在线播放| 女上男下啪啪激烈高潮无遮盖| 亚洲色大成网站WWW在线观看| 国产男男GayGay裸交视频| 色综合色狠狠天天综合色| AV无码人妻中文字幕| 乱肉怀孕又粗又大| 亚洲熟妇无码八V在线播放| 国内精品久久久久影院日本| 无码精品视频一区二区三区| 大桥未久亚洲无AV码在线| 饥渴少妇高清VIDEOS| 污污免费看锕锕锕锕锕锕| 成人毛片亚洲高潮无码精品色 | 一下子就弄进去岳的身体| 精品国产_亚洲人成在线| 性色AV一区二区三区夜夜嗨| 中文字幕在线不卡一区二区| 久久久久久久久精品成人| 亚洲精品国产综合麻豆久久99| 国产手机AV片在线无码观你| 无码人妻精品一区二区三区下载| 国产97在线 | 免费| 色婷婷五月综合亚洲影院| 成人无码精品一区二区三区亚洲区 | 免费看久久妇女高潮A| 一本大道香蕉大L在线吗视频| 精品人妻系列无码人妻在线不| 亚洲VA无码手机在线电影| 好男人视频在线观看| 男女猛烈无遮掩视频免费软件 | 色噜噜人体337P人体| 成人午夜亚洲精品无码网站| 日精品一区二区蜜桃AV| 亚洲中文字幕无码一区二区三区| 黑人巨大高潮喷水AV| 亚洲成AV人在线播放无码| 精品人妻无码区在线视频| 亚洲欧洲日产国码AⅤ | 久久亚洲熟妇熟女ⅩXXXHD| 一杆长枪直入两扇门| 狂躁美女大BBBBBB视频1| 亚洲欧美另类视频| 精产国品一二三产品99| 亚洲AV无码久久精品狠狠爱浪潮| 国偷自产一区二区免费视频| 人妻精品久久无码专区涩涩| 中文字日产幕码三区的做法大全| 久久男人AV资源网站无码| 一本色道久久88加勒比—综合| 两男一女两根同进去舒服吗| 最新中文字幕AV无码不卡| 欧美成人A猛片在线观看| 成 人 黄 色 视 频网址大全| 撒尿BBWBBW毛| 国产精品自产Av一区二区三区| 亚洲AV无码专区亚洲AV| 久久久久久精品免费免费4K| 中文字幕成人精品久久不卡| 去部队探亲晚上叫太大声| 粉嫩AV无码一区二区三区| 香港三香港日本三级在线理论| 激情 亚洲 成人小说 激情| 夜夜骚Av一区二区精品无码区| 女的被弄到高潮娇喘喷水视频| 亚洲AV片一区二区三区| 精品人妻少妇一区二区三区不卡| 在线观看AV片永久免费| 强奷高H猛烈失禁潮喷播放| 公交车伦流澡到高潮HNP| 亚洲AV片不卡无码久久| 久久午夜无码鲁丝片午夜精品| 99久久免费国产精品| 少妇又色又紧又爽又刺激视频| 国产色婷婷精品综合在线| 亚洲AV成人综合网| 精品国产乱码久久久久久下载 | 一区二区三区高清AV专区| 啪啪男女爱高潮GIF| 国产精品久久久久影院亚瑟妓| 亚洲欧美在线一区中文字幕| 欧美精品亚洲日韩AⅤ| 国产成人最新三级在线视频| 亚洲国产精品无码中文字| 欧美黑人巨大XXXX黑人猛| 国产成人无码H在线观看网站| 亚洲日韩国产一区二区三区| 国产无套无码AⅤ在线观看| 亚洲人成人一区二区在线观看 | 人妻少妇精品一区二区三区| 国产乱人伦无无码视频试看| 尤物99国产成人精品视频| 色欲av成人蜜臀av不卡| 久久99国产精品久久99果冻传|