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

PHP單元測試?yán)?PHPUNIT深入用法(二)第1/2頁

 更新時間:2011年03月06日 21:46:50   作者:  
在上一篇PHP單元測試?yán)鳎篜HPUNIT初探文章中,我們對phpunit有了一個初步的認(rèn)識,在本文中將繼續(xù)深入講解下phpunit中的一些用法。
1、markTestSkipped和markTestIncomplete

  在phpunit中,有兩個有用的方法markTestSkipped和markTestIncomplete。它們能允許你編寫的單元測試中不單是只有通過和失敗兩種結(jié)果。markTestSkipped能讓PHPUNIT不去執(zhí)行某個已經(jīng)編寫好的測試方法。舉個例子說明,比如下面的程序:

<?php
public function testThisMightHaveADb()
{
  
$myObject->createObject();
  
try {
    
$db = new Database();
    
$this->assertTrue($db->rowExists());
  }
catch (DatabseException $e) {
    
$this->markTestSkipped('This test was skipped because there was a database problem');
  }
}
?>

   在上面的程序中,是一個連接數(shù)據(jù)庫后,判斷數(shù)據(jù)是否存在的測試方法,但如果考慮數(shù)據(jù)庫的連接異常的話,則應(yīng)該在拋出異常時,使用markTestSkipped指出該測試方法應(yīng)該是被忽略的,因為出現(xiàn)了異常,而注意的時,此時有可能你寫的代碼是正確的,只不過是出現(xiàn)了異常而已,這樣phpunit在輸出時就不會只是簡單的輸出fail。

  而markTestIncomplete也有點類似,但有點不同的是,它是當(dāng)開發(fā)者在編寫一個未完成的測試方法時使用的,標(biāo)記出某個測試方法還沒編寫完成,同樣測試結(jié)果也不會是fail,只是告訴phpunit這個測試方法還沒編寫完成而已,例子如下:

<?php
public function testAreNotEnoughHours()
{
  
$this->markTestIncomplete("There aren't enough hours in the day to have my tests go green");
  
$trueVariable = true;
  
$this->assertTrue($trueVariable);
}
?>

   2、更深入了解phpunit中的斷言

  在上一篇文章中,已經(jīng)基本講解了一些基本的phpunit中的斷言的使用,這里以一個例子,下面是一個類的代碼:

<?php
class Testable
{
  
public $trueProperty = true;
  
public $resetMe = true;
  
public $testArray = array(
    
'first key' => 1,
    
'second key' => 2
  );
  
private $testString = "I do love me some strings";
  
public function __construct()
  {
  }
  
public function addValues($valueOne,$valueTwo) {
    
return $valueOne+$valueTwo;
  }
  
public function getTestString()
  {
    
return $this->testString;
  }
}
?>

   我們編寫的單元測試代碼初步的框架如下:

<?php
class TestableTest extends PHPUnit_Framework_TestCase
{
  
private $_testable = null;
  
public function setUp()
  {
    
$this->_testable = new Testable();
  }
  
public function tearDown()
  {
    
$this->_testable = null;
  }
  
/** test methods will go here */
}
?>

   在上一篇文章中,已經(jīng)介紹了setUp方法和tearDown方法,這里的setUp方法中,建立了Testable()實例并保存在變量$_testable中,而在tearDown方法中,銷毀了該對象。

  接下來,開始編寫一些斷言去測試,首先看assertTrue和assertFalase:

<?php
public function testTruePropertyIsTrue()
{
  
$this->assertTrue($this->_testable->trueProperty,"trueProperty isn't true");
}
public function testTruePropertyIsFalse()
{
  
$this->assertFalse($this->_testable->trueProperty, "trueProperty isn't false");
}
?>

相關(guān)文章

  • php中g(shù)etservbyport與getservbyname函數(shù)用法實例

    php中g(shù)etservbyport與getservbyname函數(shù)用法實例

    這篇文章主要介紹了php中g(shù)etservbyport與getservbyname函數(shù)用法,以實例形式分析了getservbyport與getservbyname函數(shù)獲取server端的端口等信息的方法,需要的朋友可以參考下
    2014-11-11
  • PHP一些常用的正則表達式字符的一些轉(zhuǎn)換

    PHP一些常用的正則表達式字符的一些轉(zhuǎn)換

    一些前臺的正則運行,你可以修改下成為php的
    2008-07-07
  • PHP 文件上傳源碼分析(RFC1867)

    PHP 文件上傳源碼分析(RFC1867)

    文件上傳,一般分為倆種方式FTP和HTTP, 對于我們的互聯(lián)網(wǎng)應(yīng)用來說: FTP上傳雖然傳輸穩(wěn)定, 但是易用性和安全性都是個問題.
    2009-10-10
  • PHP之修改php.ini文件上傳大小的配置問題案例講解

    PHP之修改php.ini文件上傳大小的配置問題案例講解

    這篇文章主要介紹了PHP之修改php.ini文件上傳大小的配置問題案例講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • php中檢查文件或目錄是否存在的代碼小結(jié)

    php中檢查文件或目錄是否存在的代碼小結(jié)

    檢查文件或目錄是否存在 ,我們使用了php中常用的函數(shù)file_exists,這個函數(shù)就可以實現(xiàn)我想要的功能,下面大家慢慢參考一下
    2012-10-10
  • 初識php MVC

    初識php MVC

    MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設(shè)計典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務(wù)邏輯。
    2014-09-09
  • input file獲得文件根目錄簡單實現(xiàn)

    input file獲得文件根目錄簡單實現(xiàn)

    js獲得file根目錄,然后賦值給hidden類型input,然后就可以交給php or jsp 處理了,感興趣的朋友可以參考下哈,希望可以幫助到你
    2013-04-04
  • 一文搞懂PHP中的DI依賴注入

    一文搞懂PHP中的DI依賴注入

    依賴注入DI 其實本質(zhì)上是指對類的依賴通過構(gòu)造器完成 自動注入。本文將通過一些示例帶大家深入了解一下PHP中的DI依賴注入,需要的可以參考一下
    2022-08-08
  • php從身份證獲取性別和出生年月

    php從身份證獲取性別和出生年月

    本文主要介紹了php從身份證獲取性別和出生年月的方法。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • 編譯PHP報錯configure error Cannot find libmysqlclient under usr的解決方法

    編譯PHP報錯configure error Cannot find libmysqlclient under usr的

    這篇文章主要介紹了Linux上編譯PHP報錯configure error Cannot find libmysqlclient under usr的解決方法,需要的朋友可以參考下
    2014-06-06

最新評論