本文地址 分享提綱: 1.概述 2.安裝 3.編寫第一個測試用例 4.PHPUnit高級 5.參考 分享提綱: 1.概述 2.安裝 3.編寫第一個測試用例 4.PHPUnit高級 5.參考 1.概述 1)【測試框架】 它是一款輕量級的PHP測試框架,是一個xUnit的體繫結構的單元測試框架。複雜的項 ...
分享提綱:
1.概述
2.安裝
3.編寫第一個測試用例
4.PHPUnit高級
5.參考
1.概述
1)【測試框架】
它是一款輕量級的PHP測試框架,是一個xUnit的體繫結構的單元測試框架。複雜的項目,通過單元測試能夠快速排查bug,有效減少bug的產生。簡單的項目,使用php自帶的var_dump()
、print_r()
也能很方便的調試bug。PHPUnit通過運行測試用例里的斷言(例如判斷返回結果不為空),檢查代碼是否符合預期。
2.安裝
安裝方式有兩種。一種是使用phar包,一種是使用Composer。
mac下的安裝請參考 http://blog.csdn.net/u013166311/article/details/52622560
(可以下載低版本的phpunit wget https://phar.phpunit.de/phpunit-4.0.14.phar)
於是打開終端,先pear version 驗證是否安裝了pear。
如果沒有安裝$sudo PHP /usr/lib/php/install-pear-nozlib.phar -d /usr/local/lib/php -b /usr/local/bin
用$ pear version檢測安裝成功
$ sudo pear upgrade-all 更新。
最後用以下命令安裝成功:
$ wget https://phar.phpunit.de/phpunit-4.0.14.phar
$ chmod +x phpunit.phar
$ sudo mv phpunit.phar /usr/local/bin/phpunit
mac下安裝
2.1)使用phar包
最新版的穩定版phar包是5.7,下載地址 https://phar.phpunit.de/phpunit.phar
phar5.7發佈於2016年12月2日,於2018年2月2日結束支持。
PHPUnit 5.7 支持 PHP 5.6, PHP 7.0, 和 PHP 7.1。
註意:PHP的版本比較低,可以下載低版本的 phpunit,例如 wget https://phar.phpunit.de/phpunit-4.0.14.phar
運行方法:
# 通用 php phpunit.phar --version # linux chmod +x phpunit.phar sudo mv phpunit.phar /usr/local/bin/phpunit phpunit --version
可以查看版本號。
2.2)使用Composer
如果用 Composer 來管理項目的依賴關係,只要在項目的composer.json 文件中簡單地加上對 phpunit/phpunit
的依賴關係即可。下麵是一個最小化的 composer.json
文件的例子,只定義了一個對 PHPUnit 5.7
的開發時依賴:
{ "require-dev": { "phpunit/phpunit": "5.5.*" } }
要通過 Composer
完成系統級的安裝,可以運行:
composer global require "phpunit/phpunit=5.5.*"
請確保 path 變數中包含有 ~/.composer/vendor/bin/
。
3.編寫第一個測試用例
3.1)新建文件夾Testcase
,編寫SayHello.php:
<?php class SayHello{ public function printHello(){ echo 'Hello'; return 'Hello'; } } ?>SayHello.php
3.2)新建測試用例SayHelloTest.php
<?php require_once 'SayHello.php'; class SayHelloTest extends PHPUnit_Framework_TestCase { public function setUp(){ } public function tearDown(){ } public function testConnectionIsValid(){ $hi = new SayHello(); $this->assertTrue($hi->printHello() == 'Hello'); } }SayHelloTest.php
編寫完成後,切換到phpunit.phar所在目錄命令行執行:
$ php phpunit.phar Testcase/SayHelloTest.php
輸出結果:
PHPUnit 5.7.4 by Sebastian Bergmann and contributors. . 1 / 1 (100%)Hello Time: 130 ms, Memory: 10.00MB OK (1 test, 1 assertion)
結果表明:
測試通過,1個測試方法,1個斷言,沒有失敗。
這裡註意的是:
1、所有以Test結尾的類均為測試用例;
2、所有以test開頭的方法均是測試方法,會自動運行;
3、setUp是每個測試用例最先運行的方法,tearDown是每個測試用例最後運行的方法;
4、assertTrue
用於判斷結果是否為true。
4.PHPUnit高級
4.1) 模擬對象MOCK
-- mock的深層次原理是什麼? 類PHPUnit_Framework_MockObject_Generator 中的方法 getMock() 猜想是 在phpunit檢測到mock對象,然後,找到要mock的方法後,就替換掉,用mock來替代原來的方法。 --【百度百科--定義mock】 mock在各語言中的實現 -- 參考:PHPUnit學習03---使用Mock對象解決測試依賴
5.參考
5.0)【好】PHPUnit手冊
5.1)開始使用 PHPUnit – PHP測試框架
5.2)web3d/TPUnit: ThinkPHP PHPUnit框架集成
5.3)[PHP]PHPUnit安裝配置及樣例 | CoinIdea的技術分享博客
5.4)《xUnit Test Patterns》學習筆記系列 - CoderZh - 博客園
5.5)【好】PHPUnit筆記