PHP單元測試利器 PHPUNIT初探第2/2頁
接下來我們運行這個單元測試,在命令行下輸入代碼:
phpunit /path/to/tests/RemoteConnectTest.php即可,可以看到測試順利通過的話,會輸出以下結(jié)果:
PHPUnit 3.4 by Sebastian Bergmann
.
Time: 1 second
Tests: 1, Assertions: 1, Failures 0
可以看到,上面是通過了測試。默認情況下,phpunit是會運行測試用例中的所有測試方法的。下面再介紹下phpunit中相關(guān)的幾個斷言:
AssertTrue/AssertFalse 斷言是否為真值還是假
AssertEquals 判斷輸出是否和預(yù)期的相等
AssertGreaterThan 斷言結(jié)果是否大于某個值,同樣的也有LessThan(小于),GreaterThanOrEqual(大于等于),
LessThanOrEqual(小于等于).
AssertContains 判斷輸入是否包含指定的值
AssertType 判斷是否屬于指定類型
AssertNull 判斷是否為空值
AssertFileExists 判斷文件是否存在
AssertRegExp 根據(jù)正則表達式判斷
舉個例子來說明下比如AssertType的使用,依然以上面的例子來說,可以用AssertType去判斷returnSampleObject返回的對象實例是否為remoteConnect,代碼如下:
<?php
function testIsRightObject() {
$connObj = new RemoteConnect();
$returnedObject = $connObj->returnSampleObject();
$this->assertType('remoteConnect', $returnedObject);
}
?>
目前PHP框架對單元測試的支持
目前很多優(yōu)秀的php框架(如Zend Framework,Symfony等),都提供了對單元測試很好的支持。以Zend Framework為例,說明下其中是如何運行單元測試的。
<?php
class CommentControllerTest extends Zend_Test_PHPUnit_ControllerTestCase
{
public function setUp()
{
parent::setUp();
}
public function tearDown()
{
parent::tearDown();
}
public function appBootstrap()
{
$this->frontController->registerPlugin(new Initializer('test'));
}
public function testGoHome()
{
$this->dispatch('/home');
$this->assertController('home');
}
}
?>
以上代碼其實是對Zend本身的框架進行了一個單元測試而已,可以看到,在Zend中,是通過繼承Zend_Test_PHPUnit_ControllerTestCase去對Zend的controller去進行單元測試的,可以看到,在zend中的單元測試跟phpunit中的差不多,但增加了另外一些新的斷言,比如上面的assertController,具體的可以參考Zend的參考手冊。
總結(jié)
在本文中,初步介紹了單元測試中的一些基礎(chǔ)知識和人們常見的誤區(qū),并簡單舉例說明了如何在php中使用phpunit和一些基本的用法,在下一篇文章中,將介紹更多關(guān)于phpunit的用法。
- Windows下安裝PHP單元測試環(huán)境PHPUnit圖文教程
- PHP單元測試利器 PHPUNIT深入用法(三)
- PHP單元測試利器 PHPUNIT深入用法(二)
- PHP單元測試PHPUnit簡單用法示例
- PHP單元測試框架PHPUnit用法詳解
- 使用PHPUnit進行單元測試并生成代碼覆蓋率報告的方法
- php單元測試phpunit入門實例教程
- PHP使用phpunit進行單元測試示例
- PHPUnit + Laravel單元測試常用技能
- Windows下wamp php單元測試工具PHPUnit安裝及生成日志文件配置方法
- laravel單元測試之phpUnit中old()函數(shù)報錯解決
- PHPUnit 單元測試安裝與使用入門教程
相關(guān)文章
PHP實現(xiàn)把數(shù)字ID轉(zhuǎn)字母ID
以下是對使用PHP把數(shù)字ID轉(zhuǎn)字母ID的實現(xiàn)代碼進行了詳細的分析介紹,需要的朋友可以過來參考下2013-08-08
在mysql數(shù)據(jù)庫原有字段后增加新內(nèi)容
在mysql數(shù)據(jù)庫原有字段后增加新內(nèi)容2009-11-11
PHP基于GD庫實現(xiàn)的生成圖片縮略圖函數(shù)示例
這篇文章主要介紹了PHP基于GD庫實現(xiàn)的生成圖片縮略圖函數(shù),涉及php針對圖片屬性相關(guān)操作技巧,需要的朋友可以參考下2017-07-07
php 廣告調(diào)用類代碼(支持Flash調(diào)用)
php 廣告調(diào)用類代碼(支持Flash調(diào)用),非常方便php頁面中加載廣告。需要的朋友可以參考下。2011-08-08
PHP轉(zhuǎn)換文件夾下所有文件編碼的實現(xiàn)代碼
本篇文章是對PHP轉(zhuǎn)換文件夾下所有文件編碼的實現(xiàn)代碼進行了詳細的分析介紹,需要的朋友參考下2013-06-06
PHP中mb_convert_encoding與iconv函數(shù)的深入解析
本篇文章是對PHP中mb_convert_encoding與iconv函數(shù)進行了詳細的分析介紹,需要的朋友參考下2013-06-06

