PHPのUnitTestにSimpleTestがいい感じ

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

This entry was posted in いじる. Bookmark the permalink. Both comments and trackbacks are currently closed.

Page optimized by WP Minify WordPress Plugin