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

PHP單元測試?yán)?PHPUNIT初探第2/2頁

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

接下來我們運行這個單元測試,在命令行下輸入代碼:

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

 

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

 

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

 

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

 

   舉個例子來說明下比如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本身的框架進(jìn)行了一個單元測試而已,可以看到,在Zend中,是通過繼承Zend_Test_PHPUnit_ControllerTestCase去對Zend的controller去進(jìn)行單元測試的,可以看到,在zend中的單元測試跟phpunit中的差不多,但增加了另外一些新的斷言,比如上面的assertController,具體的可以參考Zend的參考手冊。

  總結(jié)

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

相關(guān)文章

最新評論