您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)php單元測(cè)試如何實(shí)現(xiàn)的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。
windows開(kāi)發(fā)環(huán)境下,PHP使用單元測(cè)試可以使用PHPUnit。
推薦閱讀:php服務(wù)器
安裝PHPUnit
使用 composer 方式安裝 PHPUnit,其他安裝方式請(qǐng)看這里
composer require --dev phpunit/phpunit ^6.2
安裝 Monolog 日志包,做 phpunit 測(cè)試記錄日志用。
composer require monolog/monolog
安裝好之后,我們可以看coomposer.json 文件已經(jīng)有這兩個(gè)擴(kuò)展包了:
"require": { "monolog/monolog": "^1.23", }, "require-dev": { "phpunit/phpunit": "^6.2" },
PHPUnit簡(jiǎn)單用法
1、單個(gè)文件測(cè)試
創(chuàng)建目錄tests,新建文件 StackTest.php,編輯如下:
<?php /** * 1、composer 安裝Monolog日志擴(kuò)展,安裝phpunit單元測(cè)試擴(kuò)展包 * 2、引入autoload.php文件 * 3、測(cè)試案例 * * */ namespace App\tests; require_once __DIR__ . '/../vendor/autoload.php'; define("ROOT_PATH", dirname(__DIR__) . "/"); use Monolog\Logger; use Monolog\Handler\StreamHandler; use PHPUnit\Framework\TestCase; class StackTest extends TestCase { public function testPushAndPop() { $stack = []; $this->assertEquals(0, count($stack)); array_push($stack, 'foo'); // 添加日志文件,如果沒(méi)有安裝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; } }
代碼解釋?zhuān)?/p>
StackTest為測(cè)試類(lèi)
StackTest 繼承于 PHPUnit\Framework\TestCase
測(cè)試方法testPushAndPop(),測(cè)試方法必須為public權(quán)限,一般以test開(kāi)頭,或者你也可以選擇給其加注釋@test來(lái)表
在測(cè)試方法內(nèi),類(lèi)似于 assertEquals() 這樣的斷言方法用來(lái)對(duì)實(shí)際值與預(yù)期值的匹配做出斷言。
命令行執(zhí)行:
phpunit 命令 測(cè)試文件命名
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單元測(cè)試如何實(shí)現(xiàn)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。