PHPUnit整合ThinkPHP的庫TPUnit
專案地址:https://github.com/web3d/TPUnit
ThinkPHP PHPUnit框架整合,基於TP3.2,建議PHP 5.4以上環境。
單元測試應該是提高PHP編碼質量的解決之道,但應該沒有多少PHP團隊在用單元測試改善開發過程,更不用提TDD開發方法。
不可否認ThinkPHP框架在國內PHP圈子中的“至高”地位,所以才有這次整合嘗試,同時也在團隊中進行推行相關實踐。
1. 初始配置
為了減少學習成本,建議使用像Netbeans這樣的IDE來設定PHPUnit的基本環境。
通過Netbeans的操作介面,可以直接瞭解PHPUnit使用過程的一些核心概念。
- 基於Netbeans的PHPUnit環境配置
-
git clone git@github.com:web3d/TPUnit.git
到ThinkPHP的Vendor目錄下 - 給ThinkPHP框架打補丁 將ThinkThink類的start方法最後一行改為
!constant(`NO_NEED_RUN_APP`) && App::run();
,同時 ThinkApp::init() 方法!constant(`NO_NEED_RUN_APP`) && Dispatcher::dispatch();
(注:由於建立測試檔案的命令是在Cli環境執行,與TP的Cli模式處理衝突,臨時解決方案)
2. 開始
將TPUnit中demo目錄下的bootstrap.php檔案複製到你的tests目錄下。
在上一步的配置過程中,有一個“使用引導”的地方記得勾選並指定bootstrap.php檔案所在目錄。
由於ThinkPHP框架中坑爹的.class.php字尾名,導致NB 8.1以後版本雖然可以生成測試方法骨架,但檔名比較彆扭,形式如ClsXYZ.classTest.php。
3. 支援的特性
3.1 基本的UnitTest
最經典的例子:
參看上面的參考配置文件中:基於Netbeans的PHPUnit環境配置
3.2 DB UnitTest
參看本專案demo目錄 /demo/Application/Common/Model/UrlModelTest.php 檔案。
DBUnit主要由四種斷言構成,目前TPUnit已支援TP對這四種斷言的支援:
- 對錶中資料行的數量作出斷言
- 對錶的狀態作出斷言
- 對查詢的結果作出斷言
- 對多個表的狀態作出斷言
具體請檢視https://github.com/web3d/TPUnit/blob/master/demo/Application/Common/Model/UrlModelTest.php
其中,{{%url}} 是從Yii2框架中引入的表名字首替換方案,{{和}}是表名界定符,%是表名字首佔位符。
4. 修訂日誌:
- [修復] 基於NB已經可以建立TP框架下的測試檔案,但檔名與類名不對應,修復了測試類自動載入機制 [2016-05-20]
實踐記錄
- 專案中初試PHPUnit http://www.cnblogs.com/x3d/archive/2016/06/01/5551518.html [2016-06-01]
相關文章
- 來 ! 玩玩PHPUnit的資料庫測試 (上)PHP資料庫
- ThinkPHP與UCenter整合詳解PHP
- thinkphp整合系列之微信退款PHP
- thinkphp 和 Gatewayworker整合web聊天2.0PHPGatewayWeb
- phpunit 學習PHP
- PHPUnit 中 Mockery 的基本使用PHPMock
- phpunit測試成功phpunit測試實踐程式碼PHP
- thinkphp 5.0整合phpsocketio完整攻略,繞坑PHP
- thinkphp整合系列之微信公眾號支付PHP
- ThinkPHP3.2公共類庫、應用類庫ThinkPHP/Library講解PHP
- 實踐 Laravel phpunitLaravelPHP
- phpunit 快速入門PHP
- PHPUnit 加速技巧分享PHP
- ThinkPHP 資料庫查詢PHP資料庫
- Thinkphp各大支付平臺線上支付整合原始碼PHP原始碼
- windows 下使用 phpunit 命令WindowsPHP
- phpunit單元測試PHP
- Ubuntu上PHPUnit安裝UbuntuPHP
- [Composer 包分享] codedungeon/phpunit-result-printer 優雅的展示 PHPUnit 測試結果PHP
- ThinkPHP連線sqlserver資料庫PHPSQLServer資料庫
- Thinkphp5框架整合微信掃碼支付方法PHP框架
- PHP單元測試框架PHPUnit的使用PHP框架
- phpunit的報告結果用allure展示PHP
- PHPUnit 在 Windows 下的配置及使用教程PHPWindows
- [phpunit] Laravel 測試的時候,如果有多個資料庫怎麼辦?PHPLaravel資料庫
- Ubuntu 環境安裝 phpunitUbuntuPHP
- yii執行phpunit時報錯PHP
- phpunit一些小發現PHP
- 用thinkphp連線mysql資料庫PHPMySql資料庫
- 資料庫整合資料庫
- Laravel 測試: PHPUnit 入門教程LaravelPHP
- Fastadmin(thinkphp5)安裝整合workerman(gatewayworker)Linux環境ASTPHPGatewayLinux
- phpunit 遠端程式碼執行漏洞PHP
- PHPUnit3.4.10在windows上配置PHPWindows
- 測試也要設計—phpunit實踐PHP
- thinkphp6多資料庫配置記錄PHP資料庫
- ThinkPHP5.1 中的資料庫遷移和資料填充PHP資料庫
- thinkphp3.2開發的滯庫零件採購網PHP