php單元測試phpunit入門例項教程

2022-10-06 01:12:09 字數 1871 閱讀 2362

phpunit官網位址:

何為單程式設計客棧元測試:

指對軟體中的基本單元進行測試,如函式、方法等,以檢查其返回值或行為程式設計客棧是否符合預期;實際中軟體是很複雜的,由許多元件構成,執行流程連貫在一起,要進行單元片段的測試,就需要為其提供執行上下文(或者說引數)和環境(比如打樁模擬一些物件)來執行,並監控其行為和返回值,為此我們就需要寫出做這件事情的程式**,這樣的**叫做測試用例,許多測試用例有機結合在一起形成乙個整體的測試,又叫做測試套件,被測試的程式**叫做生產**。phpunit這個軟體就是用程式設計客棧來幫助我們寫測試用例並進行測試的。

php的單元測試:phpunit

在其官網有詳細教程,這裡介紹一些補充內容。

首先要明白phpunit軟體本身就是由php語言實現,其使用是通過命令列進行的,並不是通過瀏覽器訪問

明白這一點很重要,許多新人被卡在這裡。很基礎也很簡單,但似乎沒怎麼被提及

在官網**後得到乙個phar檔案,關於phar歸檔檔案的介紹可參見前面一篇文章php開發之歸檔格式phar檔案概念與用法

請同時**phpunit使用文件,按照裡面的安裝方法進行安裝,之後在命令列輸入以下命令:

phpunit --help

如果顯示出了幫助資訊即安裝成功,在命令列當前目錄下建程式設計客棧立乙個測試用例為yunke.php,內容如下:

<?php use phpunit\framewww.cppcns.comwork\testcase;

class yunketest extends testcase

}?>

然後在命令列輸入以下命令:

phpunit yunke

顯示如下內容:

phpunit 5.7.12 by sebastian bergmann and contributors.

. 1 / 1 (100%)

time: 159 ms, memory: 7.00mb

ok (1 test, 5 assertions)

恭喜,你已經成功執行了乙個單元測試,第一行是作者資訊(sebastian bergmann這個傢伙很喜歡署名啊)

第二行以乙個句點開始,表示所有測試成功通過

你可能會疑惑,上面的php**是怎麼回事呢?

那就是乙個測試用例,簡單的測試了乙個陣列操作,進行單元測試一般通過以下四步:

1. 針對生產**類 class 的測試寫在類 classtest中。

2. classtest(通常)繼承自 phpunit\framework\testcase。

3. 測試都是命名為 test* 的公用方法。也可以在方法的文件注釋塊(docblock)中使用@test標註將其標記為測試方法。

4. 在測試方法內,類似於assertequals()這樣的斷言方法用來對實際值與預期值的匹配做出斷言判斷。

這裡你可能會有幾個地方迷惑:

1、在注釋塊中使用的標註,php可以通過反射得到,程式可以利用得到的資訊進行配置

2、上列中測試用例**裡面的testcase類來自**?並沒有被載入啊?

上文提到phpunit本身是用php語言寫成的,打包成了phar供使用,phar是可執行的,執行時首先執行包裡面的存根檔案stub

你可以按照上文云客的另外一篇phar帖子介紹的方法提取還原phpunit.phar包,或者使用phpstorm這樣的ide直接開啟

在.phar/stub.php裡你將看到存根**,testcase類就是在存根**裡面require的「phpunit yunke」這條命令列**將首先執行phpunit指令碼,從存根檔案開始執行,然後由phpunit載入測試用例**

可以看出程式並不是從測試用例指令碼開始執行的,現在明白testcase類**來的了吧

通過以上內容再配合官網文件,新手應該可以順利入門了

PHP單元測試 PHPUnit安裝

phpunit 7.0 需要 php 7.1,強烈推薦使用最新版本的 php。phpunit 需要使用 dom 和 json 擴充套件,通常是預設啟用的。phpunit 還需要 pcre reflection spl 擴充套件。這些標準擴充套件預設啟用。覆蓋率分析報告功能需要 xdebug與 tok...

PHPUnit單元測試

單元測試 phpunit 定義乙個用來被測試的類remoteconnect author json class remoteconnect fp fsockopen servername,80 return fp?true false public function returnsampleobje...

phpunit 單元測試

1 ubuntu12.04安裝 2 測試案例phpunit1.php 測試的依賴關係 展示如何用 depends標註來表達測試方法之間的依賴關係 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29...