PHPUnitによるテスト:応用編

Selenium RCを使ったブラウザテストの自動化(1)
これまで紹介してきたテストは、アプリケーションの構成要素であるモジュールを対象とした単体テストでした。一 方、PHPで開発するアプリケーションと言えば、もっぱらWebシステムとなりますので、結合テストではWebブラウザを介した画面操作の確認を行いま す。一口にブラウザと言っても、Internet Exploroer(IE)、Firefox、Safari、Chromeなど複数の種類があり、またそれぞれバージョンごとに表示や動作に違いがありま す。
PHPUnitでは、この手間のかかるテストを自動化する仕組みとして、「PHPUnit_Extensions_SeleniumTestCase」 という名前の拡張テスト・クラスを用意しています。「Selenium RC」(http://seleniumhq.org/projects/remote-control/) というWebブラウザをプログラムから制御するテスト・ツールと連携させることで、「任意のURLを開き、フォームに値を入力し、サブミットした後の画面 表示を確認する」といった一連の操作をPHPUnitのテスト・ケースとして実行できます。
まず、Selenium RCをインストールして、起動しておきます。
--------------------------------------------------------------------------------
# mkdir /opt/selenium-remote-control-1.0.3
# cd /opt/selenium-remote-control-1.0.3
# wget http://selenium.googlecode.com/files/selenium-remote-control-1.0.3.zip
# unzip selenium-remote-control-1.0.3.zip
# java -jar selenium-server-1.0.3/selenium-server.jar
--------------------------------------------------------------------------------
テスト・ケースは、次のようになります。setUp()の中で、ブラウザの種類と、テスト対象サイトのベースURLを設定します。実際に動作させる場合 には、接続先となるWebサイトの迷惑とならないよう、ローカルの実験用サイトを指定しましょう。
testTitle()でのテスト内容は次の通りです。
(1)指定されたURLをWebブラウザで開く
(2)ページがロードされるまで5000秒待つ
(3)