懲りずにまた斜め読み

JUnitイン・アクション

JUnitイン・アクション

以前購入直後に斜め読みした後、会社に置きっぱなしだったので、ひさびさに家に持って帰ってきて読んでみた。斜め読みではいかんよな。時間をなんとかとってじっくり読まねば・・・

MapleのActionクラスをテストする機構(MapleTestCaseとでもしとくか。Strutsに対するStrutsTestCase的なもの)をずーっと考えているがまだ形になっていない。漠然と考えているのが各Actionのディレクトリに以下のような設定の入った設定ファイルを置けば、設定ファイルがあるActionはまとめてテストするって感じのもの。

[test1]
request.name = "kunit"
request.email = "kunit@kunit.jp"
result = success
action.getName = "kunit"

[Test2]
request.name = ""
result = input
errorList.name = "名前を入力してください"

[Test3]
request.email = ""
result = input
errorList.email = "メールアドレスを入力してください"

セクション毎にテストケースを書いて、その中には以下のものを指定すると。

  • リクエストパラメーター(「request.変数名」の形。「session.変数名」という入力もありだろうな)
  • Actionクラスの返却値(「result」)
  • アクションクラスにある関数の返却値(「action.関数名」の形。テンプレートで使用する文字列がちゃんと準備できるかがこれでチェックできるはず。関数に対する引数をどう表現するかな・・・)
  • エラー文字列(「errorList.変数名」の形。指定した変数にどんなエラー文字列がセットされてるかをチェックする)

これらができるだけでもまずはよしかな。PHPUnitのセットアップをするってのもMapleTestCase内でやっちゃえばいいじゃんみたいな。

けど、forward前提のものはこれではテストできないか・・・けど、まずこのレベルのものを実現する方法を考えるか。

Actionクラスのexecute()関数内で呼び出すビジネスロジック層以下のクラスのテストは・・・これはmodulesディレクトリ配下のActionクラスとは切り分けて考えないといけないな。componentsディレクトリ配下のクラスたちを簡単にテストできる機構も別途考えよっと。