プロジェクトでカバレッジツールとしてdjUnit
を使うことが多いんだけど,
今回使っていた際の問題点と対処についてのメモ.
まあその前に,djUnitのカバレッジについてなんだけど,
レベルとしては分岐網羅(C1)もどきっていうのが基本事項ということで.
- finally句の括弧が通らずにカバレッジが100%とならない
- 三項演算子の分岐が網羅されないのに100%となる
- if句のみだとelseケースが網羅されないのに100%となる
まず最初のfinally句問題.
これはどうも実行時例外の分岐が網羅されないために起こる
ケースということらしい.
なので,テストケースに実行事例が発生する
ケースを追加することで解決.
これについてはいろいろ調べたサイトがあったのでそこを参照.
finally句のカバレッジ: 遊び心
次に三項演算子問題.
これの対処のひとつは以下のような感じでケースで改行を行う方法.
[条件] ?
[真のケース] :
[偽のケース]
もうひとつはカバレッジレポートのソースコードの
実行回数とテストケースを確認する方法.
まあ,三項演算子がどこにあるかわからないと確認はかなり厳しい
ってことでかなりスマートじゃないんだけど.
最後にelse句なし問題.
これはサイトに「branch%について - dJWiki
」の「測定方法」にある通りで,
elseつまりfalseのケースが考慮されていないため.
この対処は前の問題の2つ目と同じ方法.
if文の行とif句内の行の実行回数の差異を
もって確認する
しかないかな.
他のツールって試したことがないから他にいいツールがあるといいんだけどね.