這篇文章給大家分享的是有關(guān)php單元測試如何實現(xiàn)的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)公司2013年開創(chuàng)至今,先為鳳縣等服務(wù)建站,鳳縣等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為鳳縣企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
windows開發(fā)環(huán)境下,PHP使用單元測試可以使用PHPUnit。
推薦閱讀:php服務(wù)器
安裝PHPUnit
使用 composer 方式安裝 PHPUnit,其他安裝方式請看這里
composer require --dev phpunit/phpunit ^6.2
安裝 Monolog 日志包,做 phpunit 測試記錄日志用。
composer require monolog/monolog
安裝好之后,我們可以看coomposer.json 文件已經(jīng)有這兩個擴展包了:
"require": { "monolog/monolog": "^1.23", }, "require-dev": { "phpunit/phpunit": "^6.2" },
PHPUnit簡單用法
1、單個文件測試
創(chuàng)建目錄tests,新建文件 StackTest.php,編輯如下:
assertEquals(0, count($stack)); array_push($stack, 'foo'); // 添加日志文件,如果沒有安裝monolog,則有關(guān)monolog的代碼都可以注釋掉 $this->Log()->error('hello', $stack); $this->assertEquals('foo', $stack[count($stack)-1]); $this->assertEquals(1, count($stack)); $this->assertEquals('foo', array_pop($stack)); $this->assertEquals(0, count($stack)); } public function Log() { // create a log channel $log = new Logger('Tester'); $log->pushHandler(new StreamHandler(ROOT_PATH . 'storage/logs/app.log', Logger::WARNING)); $log->error("Error"); return $log; } }
代碼解釋:
StackTest為測試類
StackTest 繼承于 PHPUnit\Framework\TestCase
測試方法testPushAndPop(),測試方法必須為public權(quán)限,一般以test開頭,或者你也可以選擇給其加注釋@test來表
在測試方法內(nèi),類似于 assertEquals() 這樣的斷言方法用來對實際值與預(yù)期值的匹配做出斷言。
命令行執(zhí)行:
phpunit 命令 測試文件命名
framework# ./vendor/bin/phpunit tests/StackTest.php // 或者可以省略文件后綴名 // ./vendor/bin/phpunit tests/StackTest
執(zhí)行結(jié)果:
? framework# ./vendor/bin/phpunit tests/StackTest.php PHPUnit 6.4.1 by Sebastian Bergmann and contributors. . 1 / 1 (100%) Time: 56 ms, Memory: 4.00MB OK (1 test, 5 assertions)
感謝各位的閱讀!關(guān)于php單元測試如何實現(xiàn)就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!