[解決済み] ラインカバレッジとブランチカバレッジの違い
2022-11-01 15:29:11
質問
私は、あるプロジェクトで Cobertura Maven プラグインを使用しています。しかし、私は生成されたレポートについて質問があります。
ラインカバレッジとブランチカバレッジの違いは何ですか?
どのように解決するのですか?
行カバレッジは、いくつのステートメントを取ったかを測定します(ステートメントは通常コードの行で、コメントや条件文などは含まれません)。ブランチ カバレッジは、各条件 (if, while, for) に対して true と false の分岐を取ったかどうかをチェックします。条件文の 2 倍の数の分岐があることになります。
なぜ気にするのでしょうか?例を考えてみましょう。
public int getNameLength(boolean isCoolUser) {
User user = null;
if (isCoolUser) {
user = new John();
}
return user.getName().length();
}
このメソッドを
isCoolUser
に設定された
true
に設定すると、100%のステートメントカバレッジが得られます。いい感じですか?いいえ、もしあなたが
false
. しかし、最初のケースではブランチカバレッジが50%なので、テストに(そしてしばしばコードに)何かが欠けていることがわかります。
関連
-
[解決済み] MavenにおけるdependencyManagementとdependenciesの相違点
-
[解決済み] IntelliJのインスペクションで「シンボルを解決できない」と表示されたが、コードはコンパイルされる
-
[解決済み] Mavenのゴールとフェーズ、その違いは何ですか?
-
[解決済み】Mavenでエンコーディングを設定する方法は?
-
[解決済み】JARパッケージングにおけるmaven scope compileとprovidedの違いについて
-
[解決済み】mavenでJavaのバージョンを指定する - プロパティとコンパイラープラグインの相違点
-
[解決済み] install:install-fileで追加したjarファイルをローカルのmavenリポジトリから削除する方法は?
-
[解決済み] Mavenの冗長性を減らすことはできますか?
-
[解決済み] Mavenの "リアクター "とは何ですか?
-
[解決済み] Maven。ライフサイクル vs フェーズ vs プラグイン vs ゴール [終了しました]。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] install:install-fileで追加したjarファイルをローカルのmavenリポジトリから削除する方法は?
-
[解決済み] intellijでmavenの依存関係階層を表示する方法
-
[解決済み] プラグインの実行がライフサイクル設定に含まれない(JBossas 7 EAR archetype)
-
[解決済み] Maven : "runtime "スコープは何のためにあるのですか?重複
-
[解決済み] Mavenの "リアクター "とは何ですか?
-
[解決済み] Maven スナップショットリポジトリとリリースリポジトリの比較
-
[解決済み] repository tag under distributionManagement vs repositories?
-
[解決済み] Maven。ライフサイクル vs フェーズ vs プラグイン vs ゴール [終了しました]。
-
[解決済み] mavenのsurefireでスタックトレースをコンソールに表示させる
-
[解決済み] Mavenの依存関係をグローバルに除外する方法はありますか?