-Cactusサンプル

MayaのCVSにCactusのサンプルも入れておきました。maya.implプロジェクトの、org.seasar.maya.CactusSampleSuite / CactusSampleTestです。アーキテクチャを理解してみると、とてもユニークな仕組みで面白い&実効的と思います。組み込みとはいえJettyの本物のサーバーの上でテストしますので、HttpServletRequestやServletContextなどがモックオブジェクトではなく、本物(?)なのです。はじめとっつきにくかったのはTestCaseが2個インスタンス化されることに理解が及ぶまでです。
CactusはTestCaseのインスタンスを、HTTPクライアントとHTTPサーバーのそれぞれの役割で2個あげるのです。JUnitの中であがった1個目はクライアントとなり、begin+テスト名 のメソッドを実行します。そして、Commons HTTP Clientを使って、立ち上げたJettyにリクエスト。リクエストを受けたJetty側はCactusの仕込んだサーブレットが受けて、2個目のTestCaseインスタンスを生成し、test+テスト名 のメソッドを実行します。その後レスポンスで1個目のインスタンスに制御が戻り、end+テスト名のメソッドを実行します。
このへんの動きをCactusSampleTestでは目視できるように作ってあります。
追記
年末年始にやっとくことリストにおいて、「JUnit in Action」は(EJBテストの章は捨てたので)読了。「NHK地球大進化」は見終わりました。