はじめに
単体テストとは、システムの構成要素であるクラスやメソッド単位での動作を確認する作業のことを言います。
Webシステムは基本的に不特定多数に公開するものであり、公開前にはきちんとテストを行っておくことが重要です。
PHPにはテストツールとしてPHPUnitという単体テストのツールがあり、PHPUnitを利用するとクラス内のメソッドに対してテスト用のクラスを自動で生成し、効率よくテストすることができます。
PHPUnitを利用して単体テストする場合のプロセスは
- テスト対象となるクラス、PHPプログラムの作成
- 1.で作成したクラスからPHPUnit内のクラスを用いてテスト用のクラスを作成
- 2.で作成したテスト用のクラスに目的に応じてテストメソッドの実体を記述
- テスト実行、結果の確認
となります。
本記事では、本連載第4回『GPS携帯を使った口コミサイト構築』の逆ジオコーディング処理をテスト対象の例として、PHPUnitを利用した単体テストの方法を説明します。
今回使用するライブラリは以下のとおりです。
ライブラリ名 | 概要 |
PHPUnit | phpで単体テストを行うライブラリ |
上記ライブラリを利用して各機能の実装を説明します。
対象読者
PHPでのWebアプリケーション開発について基本的なことを理解している方を対象とします。
サンプルアプリケーションの概要
本記事で作成するサンプルは、以下の表のとおりです。
ファイル名 | 概要 |
Util.php | 単体テスト対象となるクラス |
config.php | Util.phpで使用するGoogle Map Keyを定義するPHP |
UtilTest.php | Util.phpの単体テストケースクラス |
動作確認環境
- CentOS 5.3
- Httpd 2.2.14
- PHP 5.3.2
事前準備
PHPUnitは以下のコマンドでインストールします。
# pear channel-discover pear.phpunit.de # pear install phpunit/PHPUnit
インストール後、以下のコマンドでphpunitコマンドが使用できることを確認します。
# phpunit --version PHPUnit 3.4.13 by Sebastian Bergmann.
上記のようにPHPUnitのバージョンが表示されればインストール成功です。
PHPUnitのコードカバレッジ解析機能(後述)を利用するためにXdebug拡張モジュールをインストールします。
Linuxの場合
以下のコマンドでインストールします。
wget http://xdebug.org/files/xdebug-2.1.0RC1.tgz tar xvzf xdebug-2.1.0RC1.tgz cd xdebug-2.1.0RC1 phpize ./configure --enable-xdebug make make install
php.iniにxdebug.soを追加します。
extension=xdebug.so
Windowsの場合
Xdebug配布サイトより環境に合った5.3 VCのdllファイルをダウンロードして「php_xdebug.dll」に名前を変更後、PHPをインストールしたディレクトリ内のextディレクトリに配置します
php.iniにphp_xdebug.dllを追加します。
extension=php_xdebug.dll
インストール成否
Apacheを再起動してphpinfoでインストールの成否を確認します。「xdebug」の項目が表示されていればインストール成功です。