S2Unit

S2Unit

S2では、コンテナを使った開発のテストを楽しくおこなえるようにテスティングフレームワークが組み込まれています。JUnitを拡張しています。主な機能は以下のとおりです。

  • テストメソッド(testXxx)ごとに自動的にS2Containerを作成します。
  • S2Containerに対するregister(),getComponent(),include()が用意されています。
  • include()するPATHがテストクラスと同じパッケージにある場合は、パッケージ部分のパスは省略できます。例えば、aaa.bbb.CccTestクラスがaaa/bbb/hoge.xmlをinclude()する場合、include("hoge.xml")と記述することができます。
  • TestCaseのstaticでもないfinalでもないフィールドがあり、その名前からアンダースコア(_)を除いた名前のコンポーネントがコンテナに存在すれば自動的にセットされます。
  • TestCaseのフィールドにインターフェース型の変数が定義されていればS2Containerから取り出して自動的にセットされます。
  • テストメソッドが終わると自動セットされた値は自動的にクリア(nullをセット)されます。
  • テストメソッド(testXxx)に対応するsetUpXxx(),tearDownXxx()を定義しておくと、setUp()の後、tearDown()の前に自動的に呼び出されます。個別のテストメソッドごとの初期化・終了処理を簡単に行えるようになります。
  • include("j2ee-config.xml")をしておいて、テストメソッド名の最後にTxをつける(testXxxTx)と、テストメソッドの直前にトランザクションを開始し、テストメソッドの直後にトランザクションをロールバックするので、データベースに関するテストを行った場合のクリーンアップの処理が不要になります。