djUnit


テストクラスを作ったはよいが、その後インターフェースに変更があったりするとテストされないメソッドがでてくる。


そこでいれるのが"djUnit"*1

djUnitとは

djUnitは、ユニットテストを安全かつ、低コストで行うこと目的に開発されたTestRunnerで、Eclipseプラグインとして動作します。

JUnitのTestRunnerで実行できるテストなら、そのままdjUnitで実行するとこができ、実行方法も従来のJUnitテストと同様です。


今回ダウンロードしたのはjp.co.dgic.eclipse.jdt.djunit_3.0_0.7.0.zip。
いつも通り解凍して、Eclipse配下に突っ込むだけだ。

Wikiを見ながらちょちょいと設定して(若干設定画面が異なるが気にしてはいけない)、ぽちっと実行する。


んーと、気がついたこと。


1.レポートの見方がよくわからない
 テスト対象クラスだけではなく、関連した全てのクラスの網羅具合がでてくるので、肝心なところがちょっとわかり難いかな?
 ・・・それは仕方がないか。

 ・プロジェクトを選択してdjUnit実行((テストクラスがないものはちゃんと網羅率0%・・・っぽい))
 ・テストクラスを選択して実行。
 と二つの選択肢があるので、これは便利といえば便利。

 "%line"は行*2ベースでの網羅率
 "%branch"。これはなんだろう。・・・if文とかの網羅率ということか?

 "coverfage""summary"の選択があるのだけど、表示一緒だな・・・。
 あ、でもテスト対象のクラスを選択してチェックすればいいだけか。<=これが目的だし。

 =>パッケージ単位でも出力できるので、ビジネスロジックのクラスは本当にそれだけでパッケージングした方がよさそうだね。

2.DbUnitを利用しているあたりが全滅

 これはSpringなどの外だしにしたファイルを読み込むのに失敗している。
 したがってdjUnitではテストが実行できないので網羅率0%がたたき出される。
 使い方が悪いのかな?



Mockを利用しているビジネスロジックに関しては十分チェックはできそうだ。
ビジネスロジック層のテストが一番重要かつ変更も多いかつコードが多いのだしとりあえず入れてみるのも悪くはないはずだ。

DBアクセスを使うところはまた考えるとしよう。


djUnitEclipseプラグインなので、ビルドサーバでは当然利用できない。
その際は、JCoverageとやらを使うことになるのかな。

*1:http://works.dgic.co.jp/djwiki/Viewpage.do?pid=@646A556E6974

*2:コンパイルされたあとの行数なので注意が必要。未到達コードなどは最適化されると消えるのでテスト対象外となるらしい