• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • phpunit入門基礎

    發表于:2009-03-30來源:作者:點擊數: 標簽:PHPUnitphpunit入門
    什么是 PHPUnit PHPUnit是一個輕量級的PHP 測試框架 。它是在 PHP 5下面對 JUnit 3系列版本的完整移植,是xUnit測試框架家族的一員(它們都基于模式先鋒Kent Beck的設計) 單元測試是幾個現代 敏捷 開發 方法的基礎,使得PHPUnit成為許多大型PHP項目的關鍵工具

    什么是PHPUnit  

    PHPUnit是一個輕量級的PHP測試框架。它是在PHP5下面對JUnit3系列版本的完整移植,是xUnit測試框架家族的一員(它們都基于模式先鋒Kent Beck的設計)
      單元測試是幾個現代敏捷開發方法的基礎,使得PHPUnit成為許多大型PHP項目的關鍵工具。這個工具也可以被Xdebug擴展用來生成代碼覆蓋率報告 ,并且可以與phing集成來自動測試,最合它還可以和Selenium整合來完成大型的自動化集成測試。 [編輯本段]如何部署PHPUnit  方法一 使用Pear
      運行 pear channel-discover pear.phpunit.de;
      pear install phpunit/PHPUnit
      方法二 手動安裝
      1 從http://pear.phpunit.de/get/下載軟件包并解壓
      2 把解壓后的目錄加入php.ini中的include_path
      3 將腳本pear-phpunit改名為phpunit
      4 將phpunit腳本中的@php_bin@替換成php可執行腳本的路徑
      5 為phpunit腳本增加可執行權限并加入$PATH
      6 將PHPUnit/Runner/Version.php中的@package_version@替換成3位
      PHPUnit版本號 [編輯本段]下面的例子用來測試sizeof函數工作的正確性  <?php 鼠標
      require_once 'PHPUnit/Framework.php';
      class ArrayTest extends PHPUnit_Framework_TestCase {
      public function testNewArrayIsEmpty() {
      /*Create the Array fixture*/
      $fixture = array();
      /* Assert that the size of the Array * fixture is 0*/
      $this->assertEquals(0, sizeof($fixture));
      }
      public function testArrayContainsAnElement() {
      /* Create the Array fixture*/
      $fixture = array();
      /*Add an element to the Array * fixture*/
      $fixture[] = 'Element';
      /*Assert that the size of the * Array fixture is 1*/
      $this->assertEquals(1, sizeof($fixture));
      }
      }
      ?>
      要點:
      1 編寫的測試用例是一個php腳本
      2 require_once 'PHPUnit/Framework.php'是必須的,另外,你需要在測
      試用例腳本中包含你需要測試的代碼
      3 測試用例的主體必須寫在類中,類名必須和文件名保持一致,還必須是
      PHPUnit_Framework_TestCase的子類
      4 每一個測試用例都是一個public的成員函數,必須以test開頭
      5 程序的輸出使用assert*系列函數來進行驗證
      該用例需要在Shell下鍵入phpunit ArrayTest.php來運行。結果如下示:
      [username@machine xx]$ phpunit ArrayTest.php
      PHPUnit 3.1.3 by Sebastian Bergmann.
      ..
      Time: 0 seconds
      OK (2 tests)
      結果中最重要的用紅色標出的結果,點號 代表一個用例通過(即assert系列函數都通過)。如果將上面的測試用例testArrayContainsAnElement用例assertEquals函數中的1改為0,則運行結果為:
      PHPUnit 3.1.3 by Sebastian Bergmann.
      .F
      Time: 0 seconds
      There was 1 failure:
      1) testArrayContainsAnElement(ArrayTest)
      Failed asserting that <integer:1> matches expected value <integer:0>.
      /home/wiki/apache/htdocs1.5.0/ArrayTest.php:29
      FAILURES!
      Tests: 2, Failures: 1.
      可以很明顯看出結果由原來的 .. 變為 .F ,F表示第二個測試用例未通
      過,并且具體與哪一條驗證不符都在后有詳細說明。
      除了F外,一個測試用例還有I(未完成),S (跳過),E (錯誤)三種狀態,詳見http://www.phpunit.de/pocket_guide/3.2/en/textui.html [編輯本段]PHPUnit如何保證測試的準確性  測試用例之間必須保證他們之間是不互相影響的,即這些測試用例無論以任何順序執行,他們的結果都應該一樣。PHPUnit提供了兩個可供重寫的函數來滿足此要求。
      成員函數setUp在每一個測試用例開始之前執行,用來創建用于測試的環境。tearDown則在每個測試用例結束時調用,用于還原測試用例對環境帶來的影響。
      上示的測試用例中$fixture = array()就可以放在setUp中完成 [編輯本段]PHPUnit還支持哪些高級功能  結合XDebug生成代碼覆蓋率報告
      如何測試你的測試用例設計,答案是代碼覆蓋率。代碼覆蓋率即當你的
      一套測試用例執行完畢時,有多少比例的代碼分支被覆蓋到。
      PHPUnit的代碼覆蓋率報告需要另一個優秀的Extension——XDebug
     ?。╤ttp://www.xdebug.org )支持。當執行完測試用例后,得出的結果類似

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>