2014年5月18日日曜日

PHPUnitを使ってみた

■環境
CentOS release 5.10 (Final)
PHP 5.3.3
PEAR 1.9.4

■PHPのインストールモジュールの確認
php -m | egrep -ie 'dom|json|pcre|reflection|spl'
dom
json
pcre
Reflection
SPL

となることを確認する
モジュールが含まれていない場合はphpを再コンパイルしてインストールし直す必要があります

■PHPUnitのインストール
cd /var/tmp
wget https://phar.phpunit.de/phpunit.phar

■テストコードの作成
cd /var/tmp
touch unitTest.php
emacs unitTest.php
<?php
class unitTest extends PHPUnit_Framework_TestCase {

    public function testPushAndPop()
    {
        $stack = array();
        $this->assertEquals(0, count($stack));

        array_push($stack, 'foo');
        $this->assertEquals('foo', $stack[count($stack)-1]);
        $this->assertEquals(1, count($stack));

        $this->assertEquals('foo', array_pop($stack));
        $this->assertEquals(0, count($stack));
    }
}
?>

■テストの実行と結果の生成
通常通り実行
php phpunit.phar unitTest unitTest.php
PHPUnit 4.1.0 by Sebastian Bergmann.

.

Time: 5 ms, Memory: 4.50Mb

OK (1 test, 5 assertions)

JUnit形式のXMLファイルを結果として出力
php phpunit.phar --log-junit result.xml unitTest unitTest.php

■参考サイト

■Tips
メソッド名はtestHogehogeという形でtestで始まる必要があります
testで始まらない場合はtest用のメソッドとして認識されません

setUp(), tearDown()が使えます

テストケースはClassとして作成しなければならないのでオブジェクト指向でテスト作成できます

0 件のコメント:

コメントを投稿