Junit(djUnit)テストケースのパッケージ位置

第何週目?の出張.....done.

JUnit(djUnit)のテストケースって、Javaな方はどこに作成されてますか?
てなことで、私の場合は・・・何の疑問も持たずに、先輩から継承した教えを守ってます(^^;

ちょっと調べてみる機会があったので調べてみた。

テスト対象のクラスとテストプログラムとを同じパッケージにするか別のパッケージにするかは議論が別れるところです。同じパッケージにすれば、テストプログラムから protected やデフォルト・スコープ(パッケージローカル)のメソッドを参照できるので、これらのスコープのメソッドについてもテストメソッドを書くことができます。一方、同じパッケージにすると開発しているクラスとテストのクラスとが混在することになり管理上煩雑になるという問題が生じます。

http://www.eclipsewiki.net/eclipse/?JUnit%2FEclipse%A4%AB%A4%E9%A4%CE%CD%F8%CD%D1

なるる。同一パッケージでも問題が・・・な記事がありますね。

でも、Eclipseなら!

  • テストケース
  • テスト対象ソース

を物理的に別フォルダへ格納しつつ、同一パッケージで紐付けることが出来たりします。

わたしの場合です

プロジェクトのプロパティを開き、以下のようにソース格納パスを定義。

パッケージ・エクスプローラーのイメージは以下の通り。

test/src 配下へ、テストケース(MyServletTest.java)を作成。
この際、Eclipseにテストケースも自動生成(スケルトン)を作成してもらう。
テスト対象クラス(MyServlet.java)を右クリックして→[新規]→[JUnit テストケース]を選択

できあがり

こうすることで、

  • 同一パッケージで且つ、
  • テストケースとテスト対象ケースを物理的に分離できます。

JarやJavaDocの生成単位も分離できるので重宝しますね。

これで、protectedメソッドの呼び出しは解決

するけど、privateメソッドとかどうするの?
って話は次の機会に^^;

いじょ