欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP單元測(cè)試?yán)?PHPUNIT初探

 更新時(shí)間:2011年03月06日 21:33:42   作者:  
你是否在程序開(kāi)發(fā)的過(guò)程中遇到以下的情況:當(dāng)你花了很長(zhǎng)的時(shí)間開(kāi)發(fā)一個(gè)應(yīng)用后,你認(rèn)為應(yīng)該是大功告成了,可惜在調(diào)試的時(shí)候,老是不斷的發(fā)現(xiàn)bug,而且最可怕的是,這些bug是重復(fù)出現(xiàn)的,你可能發(fā)現(xiàn)這些bug之間會(huì)有關(guān)聯(lián),但卻老是找不到問(wèn)題的所在。

接下來(lái)我們運(yùn)行這個(gè)單元測(cè)試,在命令行下輸入代碼:

  phpunit /path/to/tests/RemoteConnectTest.php即可,可以看到測(cè)試順利通過(guò)的話,會(huì)輸出以下結(jié)果:

 

PHPUnit 3.4 by Sebastian Bergmann
.
Time: 1 second
Tests
: 1, Assertions: 1, Failures 0

 

   可以看到,上面是通過(guò)了測(cè)試。默認(rèn)情況下,phpunit是會(huì)運(yùn)行測(cè)試用例中的所有測(cè)試方法的。下面再介紹下phpunit中相關(guān)的幾個(gè)斷言:

 

AssertTrue/AssertFalse    斷言是否為真值還是假
AssertEquals    判斷輸出是否和預(yù)期的相等
AssertGreaterThan    斷言結(jié)果是否大于某個(gè)值,同樣的也有LessThan(小于)
,GreaterThanOrEqual(大于等于),
LessThanOrEqual(小于等于)
.
AssertContains    判斷輸入是否包含指定的值
AssertType    判斷是否屬于指定類型
AssertNull    判斷是否為空值
AssertFileExists    判斷文件是否存在
AssertRegExp    根據(jù)正則表達(dá)式判斷

 

   舉個(gè)例子來(lái)說(shuō)明下比如AssertType的使用,依然以上面的例子來(lái)說(shuō),可以用AssertType去判斷returnSampleObject返回的對(duì)象實(shí)例是否為remoteConnect,代碼如下:

 

<?php
function testIsRightObject() {
  
$connObj = new RemoteConnect();
  
$returnedObject = $connObj->returnSampleObject();
  
$this->assertType('remoteConnect', $returnedObject);
}
?>

 

   目前PHP框架對(duì)單元測(cè)試的支持

  目前很多優(yōu)秀的php框架(如Zend Framework,Symfony等),都提供了對(duì)單元測(cè)試很好的支持。以Zend Framework為例,說(shuō)明下其中是如何運(yùn)行單元測(cè)試的。

 

<?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');
  }
}
?>

 

   以上代碼其實(shí)是對(duì)Zend本身的框架進(jìn)行了一個(gè)單元測(cè)試而已,可以看到,在Zend中,是通過(guò)繼承Zend_Test_PHPUnit_ControllerTestCase去對(duì)Zend的controller去進(jìn)行單元測(cè)試的,可以看到,在zend中的單元測(cè)試跟phpunit中的差不多,但增加了另外一些新的斷言,比如上面的assertController,具體的可以參考Zend的參考手冊(cè)。

  總結(jié)

  在本文中,初步介紹了單元測(cè)試中的一些基礎(chǔ)知識(shí)和人們常見(jiàn)的誤區(qū),并簡(jiǎn)單舉例說(shuō)明了如何在php中使用phpunit和一些基本的用法,在下一篇文章中,將介紹更多關(guān)于phpunit的用法。

相關(guān)文章

最新評(píng)論