phpunit的安裝以及在PhpStorm中的使用

2022-01-26 04:09:11 字數 2912 閱讀 8069

單元測試這個詞彙聽起來很耳熟,很膩害的亞子,但是一直沒有嘗試過。經常聽人家講,乙個專案有良好的單元測試**,重構的勇氣都大很多。摩拳擦掌,我們也來試試。

一、windows下安裝phpunit

1、php檔案包(phar)

2)根據自己的php版本選擇對應的phpunit檔案包版本。

2、配置環境變數

將d:/phpunit配置到環境變數中

3、執行命令

echo @php "%~dp0phpunit-8.5.5.phar" %* > phpunit.cmd

回車之後,會生成乙個phpunit.cmd的檔案

4、檢查是否安裝成功

二、在phpstorm中配置使用phpunit

1.配置cli interpreters

3.配置單元測試的目錄

4.執行

三、使用

因為前面已經在ide中引入了.phar的檔案,所以下面直接用就可以了

moneytest.php:必須繼承testcase.php類

1

<?php

2use

phpunit\framework\testcase;

3require_once "money.php";

4class moneytest extends

testcase

513 }

測試結果

將moneytest.php中assertequals()方法中斷言值改為-8,和預期的不一樣試試

1

<?php

2use

phpunit\framework\testcase;

3require_once "money.php";

4class moneytest extends

testcase

513 }

測試結果

更多的測試使用方法請看官網用例

2、phpunit 規定了乙個測試類必須遵守如下的規定:

1)單元測試類名必須以 test 結尾,

2)必須繼承 \phpunit\framework\testcase 基類

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

1)單元測試**都放在 test 目錄下。

2)每個單元測試類以被測試的類名開頭。例如被測試類為 calculateservice,那麼單元測試類應該為 calculateservicetest。

3)每個單元測試函式應該為被測試函式名結尾。例如被測試函式為 abs,那麼單元測試函式應該為 testabs。

根據上面的規範,編寫

3、phpunit中常用的幾個斷言

一般常用測試無非就是 "斷言",其實就是看看產生的結果是不是符合預期,如果是,那就證明,已經測試通過,否則,失敗,說明邏輯處理,存在一定的差異,導致不符合預期。

asserttrue/assertfalse    斷言是否為真值還是假

assertequals       判斷輸出是否和預期的相等

assertgreaterthan 斷言結果是否大於某個值,同樣的也有lessthan(小於),greaterthanorequal(大於等於),

lessthanorequal (小於等於).

assertcontains 判斷輸入是否包含指定的值

asserttype 判斷是否屬於指定型別

assertnull 判斷是否為空值

assertfileexists 判斷檔案是否存在

assertregexp 根據正規表示式判斷

PHPUnit 在 windows 下的安裝和配置

配置 path 環境變數 計算機右擊屬性 高階系統設定 環境變數 在系統變數下找到 path 一欄,選中,編輯。新增 phpunit 路徑 d server phpunit 到最後。注意 不要忘記。按快捷鍵win r 輸入cmd並回車。開啟 cmd 命令視窗,進入phpunit 的檔案目錄。d se...

在windows下安裝apache和php

注意 apache的配置檔案中loadmodule php5 module c php php5apache2.dll這個地方要改為php5apache2 2.dll php的windows安裝版好像檔案編譯不符合執行緒安全性,但是.zip檔案符合執行緒安全性,但是缺少php5ts.dll檔案,所以...

pear包安裝phpunit的方法

phpunit可以通過php擴充套件和程式庫 peae 獲得。pear是可重用php元件的框架和分發系統。安裝phpunit可以通過pear安裝程式命令獲得 pear install phpunit2 根據pear的版本命名標準,適用於php5的phpunit包稱為phpunit2。phpunit是...