php 單元測試


  前幾天把個人上半年計划拿出來看了一下,有學習單元測試的內容,今天沒什么事情,就看了一下phpunit!安裝phpunit是件很蛋疼事情,尤其在window下面,記得當初費了很大勁才裝上,這里就不介紹怎么裝的了,你可以去百度一下,首先裝上pear,再裝phpunit。

  裝好了phpunit,可以寫個例子練習!

require_once 'PHPUnit/Framework/TestCase.php';


/**
* test
*/
class TestAdd extends PHPUnit_Framework_TestCase 
{
    /**
    *
    */
    public function setUp()
    {
        parent::setUp();
        
    }
    
    public function tearDown()
    {
        parent::tearDown();
    }
    
    public function testTrue() 
    {
        $this->assertContains('baz', 'foobar');
    }
    
    public function testFloat()
    {
        $this->assertEquals(1.0, 1.2, '相等', 0.2);
    }

 setup 可以在里面初始化一些變量,tearDown 是測試完后,釋放setUp里面變量所占的內存! assertEquals 是個很常用的方法!

assertEquals(mixed $expected, mixed $actual[, string  $message = '']) 第一個是期望的值,第二是實際的值。你看的我們上面例子,在比較浮點數的時候,

assertEquals(float $expected, float $actual[, string $message = '', float $delta = 0]),有個$delta ,這個參數的意思是我們期望值和實際值的差的最大值,如果小於$delta 則視為通過。其他的判斷方式可以到 http://www.phpunit.de/manual/current/en/  去查找

上面通過命令行輸出:

 

第一個"F"表示失敗,第二個"." 表示通過!

 集成測試

  你一下測試一個項目所有的測試文件,而不是單個測試! 你可以通過 繼承 PHPUnit_Framework_TestSuite來實現

require_once 'TestAdd.php';
require_once 'TestArray.php';
/**
* test
*/
class TestSuite extends PHPUnit_Framework_TestSuite 
{
    public function __construct() 
    {
        $this->setName('testSuite');
        $this->addTestSuite('TestAdd');
        $this->addTestSuite('TestArray');
    }
    public static function suite()
    {
        return new self();
    }
}

 這樣就可以測試 TestAdd.php和TestArray 文件了! phpunit 里面很多內容,大多數用不到! 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM