前幾天把個人上半年計划拿出來看了一下,有學習單元測試的內容,今天沒什么事情,就看了一下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 里面很多內容,大多數用不到!