【Java】【テスト】 djUnitの罠 | さすらいびとの徒然漂流記

さすらいびとの徒然漂流記

ふらふら漂流するさすらいびとのように,色々な話題についてお気楽極楽,徒然なるままに…

プロジェクトでカバレッジツールとしてdjUnit を使うことが多いんだけど,
今回使っていた際の問題点と対処についてのメモ.


まあその前に,djUnitのカバレッジについてなんだけど,

レベルとしては分岐網羅(C1)もどきっていうのが基本事項ということで.

  • finally句の括弧が通らずにカバレッジが100%とならない
  • 三項演算子の分岐が網羅されないのに100%となる
  • if句のみだとelseケースが網羅されないのに100%となる


まず最初のfinally句問題.
これはどうも実行時例外の分岐が網羅されないために起こる

ケースということらしい.
なので,テストケースに実行事例が発生する

ケースを追加することで解決.
これについてはいろいろ調べたサイトがあったのでそこを参照.

finally句のカバレッジ: 遊び心


次に三項演算子問題.
これの対処のひとつは以下のような感じでケースで改行を行う方法.


[条件] ?
[真のケース] :
[偽のケース]


もうひとつはカバレッジレポートのソースコードの
実行回数とテストケースを確認する
方法.
まあ,三項演算子がどこにあるかわからないと確認はかなり厳しい
ってことでかなりスマートじゃないんだけど.


最後にelse句なし問題.
これはサイトに「branch%について - dJWiki 」の「測定方法」にある通りで,
elseつまりfalseのケースが考慮されていないため.
この対処は前の問題の2つ目と同じ方法.
if文の行とif句内の行の実行回数の差異を

もって確認する

しかないかな.


他のツールって試したことがないから他にいいツールがあるといいんだけどね.