SimpleTest – Unit Testing for PHP
symfonyのUnitTestにも使われているSimpleTestがその名の通りシンプルでいい感じです。
ダウンロードして解凍して適当なディレクトリに置くだけ。
ドキュメントにもサンプルは書いてありますが、CLI(シェル)で使うならこんな具合。
require_once 'simpletest/unit_tester.php';
require_once 'simpletest/reporter.php';
require_once 'Hoge.php'; // テストしたい対象
class Test_Of_Hoge extends UnitTestCase
{
public function __construct()
{
$this->UnitTestCase();
}
public function testHoge()
{
$hoge = new Hoge;
$this->assertTrue($hoge->getHoge('aaa') === false);
// 以下テスト項目が続く
}
}
$test = new Test_Of_Hoge;
$test->run(new TextReporter());testHogeのような頭にtestのつくメソッドは親クラスのUnitTestCaseが継承しているSimpleTestCaseの中で
get_class_methods(get_class($this))
として取得した後、自動で実行されます。一応上記コードはPHP5風に書いていますが、4でももちろん動きます。SimpleTest内部では
version_compare(phpversion(), '5') >= 0
とすることで4と5両方で動くようにコードが分岐しています。
使いそうなメソッドの一覧。
PHP Unit Test documentation