系統環境: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 根據正則表達式判斷