日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php测试框架,PHPUnit使用

發布時間:2025/3/19 php 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php测试框架,PHPUnit使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#### 1.安裝

PHPUnit如果使用PHAR安裝的話很簡單。Phar歸檔就像Java的Jar,可以直接被PHP解釋器執行。在*nix系統下,可以執行下面三條命令:

~~~

? wget https://phar.phpunit.de/phpunit.phar

? chmod +x phpunit.phar

? sudo mv phpunit.phar /usr/local/bin/phpunit

~~~

考慮到這次重構會引入比較多的類庫,選擇`Composer`做依賴管理。

在Ubuntu下安裝很順利,全局安裝Composer之后,在命令行執行

~~~

composer global require phpunit/phpunit

~~~

全局安裝`PHPUnit`。然后在`~/.bashrc`文件末尾加一行`PATH=$PATH:/home/feng/.composer/vendor/bin`(注意替換用戶名),來將`Composer`的`global bin`目錄加入`PATH`。

安裝過后運行`phpunit --version`看到版本信息則說明安裝成功。

另外,裝完以后我發現`Ubuntu`系統可以使用`apt-get install phpunit`來安裝,但我沒有試過。

在Windows下我用的是`XAMPP`環境,其中已經內置PHPUnit了。如果要在命令提示符下使用的話,可以修改環境變量中的PATH,在里面加上`C:\xampp\php`(或者你修改后的路徑)。再打開命令提示符,運行`phpunit --version`看一下。

#### 2.第一個測試

第一個`Tutorial`我使用的是`PHPUnit`官網上的`Getting Started`,這里寫的比它還要簡單一點。

項目的目錄結構如下:

├── phpunit.xml

├── src

│ ├── autoload.php

│ └── Money.php

└── tests

└── MoneyTest.php

第一個文件是項目代碼`src/Money.php`,內容如下:

~~~

class Money

{

private $amount;

public function __construct($amount)

{

$this->amount = $amount;

}

public function getAmount()

{

return $this->amount;

}

public function negate()

{

return new Money(-1*$this->amount);

}

}

~~~

與之對應的單元測試是tests目錄下的`MoneyTest.php`,注意單元測試文件名最好是`*Test.php`,這樣以后指定tests目錄便可以執行目錄下的所有測試。

~~~

class MoneyTest extends PHPUnit_Framework_TestCase

{

public function testCanBeNegated()

{

$a = new Money(1);

$b = $a->negate();

$this->assertEquals(-1, $b->getAmount());

}

}

~~~

代碼很簡單,`$this->assertEquals(-1, $b->getAmount());`即斷言后一個參數的執行結果與前一個參數相等,其他不解釋了。

現在,如果在MoneyTest.php里加一行`include_once('../src/Money.php');`。然后在項目根目錄下執行`phpunit tests/MoneyTest`,就可以看到執行結果了。

#### 3.自動載入

但是,逐個添加`include`的方式太不方便,最好是能自動`include`所需的文件,`PHPUnit`提供了一個參數`--bootstrap`,可以使用項目的`autoload`文件。這里我自己寫了一個最簡單的`autoload.php`,只要4行。這個文件并不是PHPUnit專用的,應該放在src目錄下。

~~~

function __autoload($class){

include $class.'.php';

}

spl_autoload_register('__autoload');

~~~

當需要Money類時,就去`include Money.php`。寫完`__autoload()`函數之后要用`spl_autoload_register()`注冊上。

現在就可以去掉`MoneyTest.php`中的`include`語句,使用`phpunit --bootstrap src/autoload.php tests/MoneyTest`來執行測試了。

雖然可以自動載入,但是要執行的命令更長了。我們還可以寫一個配置文件來為項目指定`bootstrap`,這樣就不用每次都寫在命令里了。

配置文件`phpunit.xml`放在項目根目錄下。PHPUnit默認會讀取當前目錄下的`phpunit.xml`配置文件,在里面包含了所需要用到的類(非PHPUnit的類),問題就解決了~

~~~

~~~

如果要執行MoneyTest,在項目根目錄下執行:`phpunit tests/MoneyTest`

如果要執行tests目錄下的所有測試,在項目根目錄下執行:`phpunit tests`

* * * * *

http://www.bayescafe.com/php/getting-started-with-phpunit.html

總結

以上是生活随笔為你收集整理的php测试框架,PHPUnit使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。