作成日:2005/3/3

StrutsTestCase for JUnit導入

ちょっとやっかいなカクタステストケースの導入手順を書き出してみました。
Tomcatとeclipseを併用した場合には参考になるかもしれません。

使った物

既にStrutsアプリケーションが動く状態と仮定します。

jarファイルのコピー

tomcatインストールフォルダの/common/libフォルダ(サーバー側クラスパス)と、
プロジェクトフォルダの/web-inf/libフォルダ(クライアント側クラスパス)に、
必要っぽいjarファイルをジャンジャンコピーして下さい。

ビルドパス

以下のjarにビルドパスを通します。
cactus-1.7.jar
strutstest-2.1.3.jar
パッケージエクスプローラーからプロジェクトを選択した右クリック>Javaのビルドパス>ライブラリー>JARの追加

cactus.propertiesの設置

web-inf/strフォルダに以下の内容のcactus.propertiesを配置。
cactus.contextURL = http://localhost:8080/test
cactus.servletRedirectorName = ServletRedirector
cactus.enableLogging=true
※これは最小構成なので、必要に応じて追加する必要があるかもです。

web.xml

web.xmlに以下のコードを追加します。
▼これはアクションサーブレット定義の直前に。
<servlet>
  <servlet-name>ServletRedirector</servlet-name>
  <servlet-class>org.apache.cactus.server.ServletTestRedirector</servlet-class>
</servlet>
▼これはアクションサーブレットマッピングの直前に。
<servlet-mapping>
  <servlet-name>ServletRedirector</servlet-name>
  <url-pattern>/ServletRedirector</url-pattern>
</servlet-mapping>
※これって、最初からある定義のブロックに突っ込んでもいいのかもですね。
※それ以前に、ブラウザからのテストをしないのであれば、この定義必要ないのかも?

テストコード

テストしたいクラスを選んで右クリック>新規>テストケース
スーパークラスをservletunit.struts.CactusStrutsTestCaseにして、
テストしたいクラスにチェックを入れればok。

テスト

テストクラスを選んで右クリック>実行>JUnitテストでテストできます。
※antを使うとアプリケーションやtomcatの起動再起動まで制御できるそうです。
※antを使わなくても、手動で起動してやればCactusのテストは実行できます。
※eclipse用のcactusプラグインは不具合があるようで現在配布されていません。

注意

・コンテナおよびプロジェクトのlibファイルにjarファイルが足りないと、
クラスが生成できないとか、クラスがキャスト出来ないとかエラー吐きます。
困った時は何も考えずにもりもりコピーしましょう(思考停止いくない(・ω・)
・余計なjarファイルの混在に気をつけて下さい。例:junit.jarとjunit-3.8.1.jar
・cactus.propertiesは/web-inf/src/に配置しましたが、サブフォルダに格納する方法もあるかもです。誰か教えてください(・ω・)
・別で調べてたら、クラスパス、クラスパスうるさかったので、クラスパス変数を通したのですが意味なかったみたいです(・ω・)