環境はWindows7でPHPはXAMPPで入っています。
PHP 5.4 / PHPUnit 3.7
PHPUnitのインストール
PHPUnitはPEARからインストールします。
PHPの環境変数が設定していない場合は「C:\xampp\php」で設定しておきます。
管理権限でプロンプト(ターミナル)を起動します。
まずはPEARのアップデート。
pear upgrade PEAR
続いてPHPUnitのインストール。
pear config-set auto_discover 1 pear install pear.phpunit.de/PHPUnit
使ってみる
インストールが終わったので、早速プログラムのテストをしてみましょう。
テストするためのPHPファイルを「Hello.php」という名前で作成します。
Hello.php
<?php class Hello { public function getMessage() { return "hello world"; } }
プロンプトで「Hello.php」を作成したディレクトリをカレントにします。
テストコードのひな形を自動作成
テストコードのひな形を自動作成するためのPEARをインストールします。
pear install phpunit/PHPUnit_SkeletonGenerator
インストール完了後次のコマンドを実行します。
phpunit-skelgen --test Hello
「HelloTest.php」というPHPファイルが作成されます。
まずは「PHPUnit/Autoload.php」とテストするファイル「Hello.php」を読み込みます。
HelloTest.php
<?php require_once 'PHPUnit/Autoload.php'; require_once 'Hello.php';
ソースの一番下には「Hello.php」で実装した「getMessage」をテストするためのメソッド「testGetMessage」がありますので、下記のようにします。
HelloTest.php
public function testGetMessage() { $this->assertEquals("hello world", $this->object->getMessage()); }
「assertEquals」メソッドは2つの引数が等しいことを検証します。
「getMessage」は「hello world」という文字列を返しますので、テストは通るはずです。
下記コマンドでテストを実行します。
phpunit HelloTest
「OK (1 test, 1 assertion)」と表示されればテストは問題なかったということです。
IntelliJ(PHPStorm)でテストできるようにする。
「File」->「Setting」でSettingウィンドウを表示したら「PHP」の項目を選択。
「Interpreter」でPHPを選択します。
「Run」->「Edit Configurations」でClassを下記のようにするか、Directoryを選択します。
あとは「Run」ボタンでテストが実行されます。
これくらいのコードだったら全然大丈夫なのですが、フレームワークとかのテスト書こうと思うといきなり難易度高くなりませんかね。さてどうしたもんでしょ。