最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)論

大余县| 工布江达县| 宁河县| 汝州市| 寿宁县| 安仁县| 宁远县| 罗城| 于都县| 花莲市| 子长县| 大理市| 六安市| 务川| 浪卡子县| 漳平市| 穆棱市| 镇原县| 五河县| 安溪县| 浏阳市| 宕昌县| 邵武市| 中阳县| 海门市| 兰西县| 美姑县| 万盛区| 长岛县| 泗水县| 册亨县| 石首市| 墨竹工卡县| 湘潭市| 申扎县| 乌拉特中旗| 刚察县| 黄骅市| 枣强县| 双桥区| 龙岩市|