本教程已經過時了。 有關PHPUNIT的當前介紹,請參閱我們最近發布的最新指南。
>開始之前,請確保安裝phpunit。 說明可在phpunit手冊中找到,網址為https://www.php.cn/link/991C09555DA2313335E4864D3389698FD5
>。創建您的第一個測試
我們將從代表用戶的簡單php類開始:
<?php class User { protected $name; public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } public function talk() { return "Hello world!"; } }
。 測試類名稱通常反映了正在測試的類。 測試類包括經過測試的類和Phpunit的自動加載:UserTest
>
<?php require_once "PHPUnit/Autoload.php"; require_once "User.php"; class UserTest extends PHPUnit_Framework_TestCase { }
來驗證問候:assertEquals()
<?php ... class UserTest extends PHPUnit_Framework_TestCase { public function testTalk() { $user = new User(); $expected = "Hello world!"; $actual = $user->talk(); $this->assertEquals($expected, $actual); } }
利用phpunit固定裝置 在每種測試方法中反復設置對象效率低下。 Phpunit固定裝置在每個測試之前都建立一個狀態,然後將其重置。 我們覆蓋
來創建和初始化用戶:
setUp()
每次測試後,
<?php ... class UserTest extends PHPUnit_Framework_TestCase { protected $user; protected function setUp() { $this->user = new User(); $this->user->setName("Tom"); } }
tearDown()
現在,
<?php ... class UserTest extends PHPUnit_Framework_TestCase { ... protected function tearDown() { unset($this->user); } }
testTalk()
<?php ... class UserTest extends PHPUnit_Framework_TestCase { ... public function testTalk() { $expected = "Hello world!"; $actual = $this->user->talk(); $this->assertEquals($expected, $actual); } }
>使用從終端運行測試。 一個。表示成功的測試,而“ F”表示故障。 其他字符表示錯誤,跳過測試或不完整的測試。
phpunit
處理測試失敗
>修改類以返回“ blubb”,而不是“ Hello World!”將導致測試失敗,提供詳細的錯誤信息。
User
結論
>本簡介展示了Phpunit的簡單性。 進一步探索其能力;實驗,從錯誤中學習,並查閱Phpunit手冊以獲取高級技術和斷言方法。 提供的代碼(在Github上可用)使用Composer進行依賴關係管理; 語句應調用
。 使用>。
require
vendor/autoload.php
圖像通過Acripoch / Shutterstock ../vendor/bin/phpunit UnitTest UserTest.php
>
以上是phpmaster |開始使用phpunit的詳細內容。更多資訊請關注PHP中文網其他相關文章!