安裝PHPUnit

系統環境:LInux-elementary osphp

pear channel-discover pear.phpunit.de正則表達式

pear remote-list -c phpunit函數

pear install phpunit/PHPUnit單元測試

在編寫測試用例時,要遵照以下的phpunit的規則:測試

  1 通常地,在測試用例中,能夠擴展PHPUnit_Framework_TestCase類,這樣就能夠使用象setUp(),tearDown()等方法了。this

  2 測試用例的名字最好是使用約定俗成的格式,即在被測試類的後面加上」Test」,好比要測試的類爲RemoteConnect,則測試用例的命名爲RemoteConnectTest。spa

  3 在一個測試用例中的全部的測試方法,在命名時都應該以test+測試方法名去命名,如testDoesLikeWaffles(),要注意的是該方法必須是聲明爲public類型的。固然能夠在你的測試用例中包含private的方法,但它們不能被phpunit所調用。code

  4 測試方法中是不能接收參數的。orm

       編寫第一個單元測試用例,建立文件HelloTest.php,內容以下:element

       

<?php
class HelloTest extends PHPUnit_Framework_TestCase{
    //用戶初始化環境,相似構造函數
    public function setUp(){}
    //清理環境,相似析構函數
    public function tearDown(){}
    /**
     * 若是存在@test標籤,即便方法名不是以test開頭,也能夠被PHPUnit識別
     * 判斷值是否相等
     * @test
     */
    public function testEqual(){
        $a = 2014;
        $this->assertEquals($a, 2014);
        }
    }

   在終端下輸入:phpunit HelloTest

           輸出以下:

             .

            Time: 272 ms, Memory: 2.25Mb

            OK (1 test, 1 assertion)

            表示測試經過

            若是把$a的值改成2013,將不會經過測試,輸出以下:

            F  //表示錯誤

            Time: 239 ms, Memory: 2.25Mb

            There was 1 failure:

            1) HelloTest::testEqual  

            Failed asserting that 2014 matches expected 2013.

            /tmp/HelloTest.php:15

            FAILURES!

            Tests: 1, Assertions: 1, Failures: 1.

經常使用斷言以下:

AssertTrue/AssertFalse    斷言是否爲真值仍是假

AssertEquals    判斷輸出是否和預期的相等

AssertGreaterThan    斷言結果是否大於某個值,一樣的也有LessThan(小於),GreaterThanOrEqual(大於等於),

LessThanOrEqual(小於等於).

AssertContains    判斷輸入是否包含指定的值

AssertType    判斷是否屬於指定類型

AssertNull    判斷是否爲空值

AssertFileExists    判斷文件是否存在

AssertRegExp    根據正則表達式判斷

相關文章
相關標籤/搜索