はじめに
前回まででCatalystの主要コンポーネントについては一通りの紹介が終わりました。本記事では、Catalystで用意されているテスト関連のモジュールについて紹介していきます。
対象読者
- Perlで簡単なスクリプトを作成したことのある方
- Webアプリケーションの基本的な仕組み(HTTPリクエスト、レスポンスなど)についての知識のある方
これまでの連載
- 初めてのCatalyst入門(1) PerlによるWebフレームワークCatalystとは?
- 初めてのCatalyst入門(2) Catalystアプリはどのように作るのか?
- 初めてのCatalyst入門(3) 処理の入り口はアクション
- 初めてのCatalyst入門(4) URLパスとリクエストパラメータ
- 初めてのCatalyst入門(5) フロー制御とChainedアクション
- 初めてのCatalyst入門(6) Perlのオブジェクト指向とモデル
- 初めてのCatalyst入門(7) モデルを使ったプログラミング
- 初めてのCatalyst入門(8) Catalystのビュープログラミング
必要な環境
本連載で紹介するサンプルなどで実行している環境は次の通りです。
CentOS 5.3
- Perl 5.8.9
- Catalyst 5.80020
また、動作確認を行ったWindowsの環境は次の通りです。
Windows Vista
- ActivePerl 5.8.9 Build 826
- Catalyst 5.80020
Catalystでのテスト
テストについてはCatalystに限らず、その必要性がさまざまなところで説明されているのでここでは深くふれませんが、開発者の支えとなるものとして積極的にテストコードを書くようにしましょう。
Catalystでは、<MyApp>/tディレクトリ以下に「.t
」という拡張子を持つスクリプトファイルにテストコードを記述します。このディレクトリにはscript/<MyApp>_create.pl
ヘルパスクリプトでコントローラなどのコンポーネントを作成した場合に、簡単なテストを記述したテストスクリプトが自動的に作成されます。
コンポーネントごとの詳細なテストは、これらのテストファイルにテストコードを追加していくことで、より具体的なテストを行うことができるようになります。
初期状態でどのようなファイルがあるかを見ていきましょう。catalyst.pl
を使ってアプリケーションのスケルトンを作成すると、テストに関連する次のようなファイルが作成されます。
ファイル名 | 説明 |
script/ |
コマンドラインからアクションを実行し、その結果を出力 |
t/01app.t | アプリケーションのロード、コンパイルなどを検証 |
t/02pod.t | すべてのPOD(モジュールのドキュメント)にエラーがないかどうか検証 |
t/03podcoverage.t | すべてのメソッドにPODが記述されているかどうか検証 |
まず、<myapp>_test.pl
は、テストというよりも実装したアクションを実行し、その結果を出力するためのヘルパスクリプトです。
例えばRoot
コントローラのfoo
アクションを実行するには次のように指定します。
$ ./MyApp/script/myapp_test.pl /foo
次に、tディレクトリ以下の02pod.tと03podcoverage.tはスクリプトに埋め込まれたドキュメントである、POD(Plain Old Documentation)についてのテストファイルで、環境変数「TEST_POD
」を1にした場合のみ実行されます。
01app.tについては、後ほど説明します。