if条件でfor-inループのjestのブランチカバレッジを増やす方法は?

ヴィシュヌ

次のコードは、オブジェクトから別のフィールドにいくつかのフィールドをマップし、値をコピーします。

//Function params
var source= {"f1": "v1", "f2": "v2", "f3":"v3"};
var fieldsMapping = {"f1": "c1", "f2":"c2"};

//function definition starts
var copiedObj = {};    
for (var name in source) {
  if (source.hasOwnProperty(name)) { //Line X
    if(fieldsMapping[name]){
        copiedObj[fieldsMapping[name]] = source[name];
    }
  }
}

console.log(copiedObj); //outputs {c1: "v1", c2: "v2"}

この関数のテストケースをで作成しました。jestラインカバレッジは100%ですが、ブランチカバレッジの表示Line Xカバーされていません。あたりとして標準で同様のTSLintfor-inループが続くべきですif condition

誰かbranch coverageがこれのために増やすためにテストケースを持つ方法について提案できますか?

ダーク・ハーマン

余分なものifは、コードの堅牢性のためです。このような堅牢性チェックは、賢明な方法でテストすることはできません。これは、コードの他のさまざまな部分でも発生しswitchます。これは、考えられるすべてのケースが明示的にカバーされ、例外をスローするか、この「不可能な」状況を処理するためだけにデフォルトのケースが追加されるステートメントでよく発生します。または、コードに追加されたアサーションステートメントについて考えてみてください。アサーションが失敗することはないため、厳密に言えば、アサーションステートメント内に隠されているelseブランチをカバーすることはできません。アサーション内の式が適切であることをどのようにテストしますか。あなたが望む問題を実際に検出しますか?

このような堅牢性コードとアサーションを削除することは、将来の変更による望ましくない副作用の検出にも役立つため、お勧めできません。最終的には、コードのどのステートメント/ブランチなどを実際にカバーする必要があり、どれをカバーしないかについて、十分な情報に基づいて決定する必要があります(全体のパーセンテージだけでなく、カバレッジレポートを詳細に確認することによって)。

また、最後に、コードカバレッジが高いからといって、テストスイートの品質が高いとは限らないことに注意してください。テストスイートは、存在する可能性のあるコードのバグを検出する場合、高品質です。潜在的なバグを検出しない100%のカバレッジのテストスイートを作成できます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Jestがこのコードで75%のブランチカバレッジを示す原因は何ですか?

分類Dev

jacocoブランチカバレッジとソナー条件カバレッジの違いは何ですか?

分類Dev

ブートストラップ3でプログレスバーの制限を増やす方法

分類Dev

Jestカバレッジ(イスタンブール)がこのVueコンポーネントメソッドで0ブランチを測定するのはなぜですか?

分類Dev

100%のステートメントカバレッジなしで100%のブランチカバレッジを持つことは可能ですか?

分類Dev

ブロックカバレッジとブランチカバレッジの違いは何ですか?

分類Dev

各バッチでSpring Kafkaコンシューマーによって消費されるメッセージの数を増やす方法は?

分類Dev

ReactとJestのループ内で実行されるコンポーネントのユニットテストカバレッジを取得する方法

分類Dev

Sqoopジョブでマッパーの数を増やす方法

分類Dev

Titanグラフデータベースのエッジラベルで訪問数を増やす方法は?

分類Dev

Angularテンプレートでサブスクライブされたオブザーバブルの例外をキャッチする方法は?

分類Dev

カーネルバージョンをアップグレードする最良の方法は何ですか?

分類Dev

プレインストールされたグラフィック パッケージのみを使用して、ネットワーク仮想化プロットのエッジ幅を増やすにはどうすればよいですか?

分類Dev

ループバック4フレームワークでデフォルトの最大リクエスト本文サイズを増やす方法は?

分類Dev

ポリラインジオマップでマウスオーバーの「ヒットエリア」を増やす方法

分類Dev

トピックサブスクライバーのキープアライブチェックのタイミングを増やすことは可能ですか?

分類Dev

ブートストラップ4でバッジサイズ/フォントサイズをどのように増やしますか?

分類Dev

イベントグリッドサービス(トリガー)をセットアップする方法は、マルチストレージアカウントで増え続けるストレージBLOBのリソースグループをリッスンします

分類Dev

vbaでループ内の範囲を増やす方法は?

分類Dev

`if / else if / else`を使用してgcovrで100%のブランチカバレッジを取得する方法

分類Dev

チタンアクセラレーターでtextAreaの高さを動的に最大3行の高さ(whatsAppメッセージボックスのように)に増やす方法は?

分類Dev

Linuxのusrでローカルの容量を増やす方法は何ですか?

分類Dev

junit.xml形式でJest /イスタンブールカバレッジレポートを生成する方法はありますか?

分類Dev

Perlソケットモジュールでsndbuf / rcvbufサイズのソケットオプションを増やす方法は?

分類Dev

kubernetesワーカーノードのエフェメラルストレージのサイズを増やすにはどうすればよいですか

分類Dev

Pesterを使用してすべてのブランチのコードカバレッジを取得するにはどうすればよいですか?

分類Dev

古いファイル/カーネルを削除してスペースを増やし、ドライブをクリーンアップするために利用できる他のソフトウェアは何ですか?

分類Dev

古いファイル/カーネルを削除してスペースを増やし、ドライブをクリーンアップするために利用できる他のソフトウェアは何ですか?

分類Dev

リソースを試すための8つのブランチ-jacocoのカバレッジは可能ですか?

Related 関連記事

  1. 1

    Jestがこのコードで75%のブランチカバレッジを示す原因は何ですか?

  2. 2

    jacocoブランチカバレッジとソナー条件カバレッジの違いは何ですか?

  3. 3

    ブートストラップ3でプログレスバーの制限を増やす方法

  4. 4

    Jestカバレッジ(イスタンブール)がこのVueコンポーネントメソッドで0ブランチを測定するのはなぜですか?

  5. 5

    100%のステートメントカバレッジなしで100%のブランチカバレッジを持つことは可能ですか?

  6. 6

    ブロックカバレッジとブランチカバレッジの違いは何ですか?

  7. 7

    各バッチでSpring Kafkaコンシューマーによって消費されるメッセージの数を増やす方法は?

  8. 8

    ReactとJestのループ内で実行されるコンポーネントのユニットテストカバレッジを取得する方法

  9. 9

    Sqoopジョブでマッパーの数を増やす方法

  10. 10

    Titanグラフデータベースのエッジラベルで訪問数を増やす方法は?

  11. 11

    Angularテンプレートでサブスクライブされたオブザーバブルの例外をキャッチする方法は?

  12. 12

    カーネルバージョンをアップグレードする最良の方法は何ですか?

  13. 13

    プレインストールされたグラフィック パッケージのみを使用して、ネットワーク仮想化プロットのエッジ幅を増やすにはどうすればよいですか?

  14. 14

    ループバック4フレームワークでデフォルトの最大リクエスト本文サイズを増やす方法は?

  15. 15

    ポリラインジオマップでマウスオーバーの「ヒットエリア」を増やす方法

  16. 16

    トピックサブスクライバーのキープアライブチェックのタイミングを増やすことは可能ですか?

  17. 17

    ブートストラップ4でバッジサイズ/フォントサイズをどのように増やしますか?

  18. 18

    イベントグリッドサービス(トリガー)をセットアップする方法は、マルチストレージアカウントで増え続けるストレージBLOBのリソースグループをリッスンします

  19. 19

    vbaでループ内の範囲を増やす方法は?

  20. 20

    `if / else if / else`を使用してgcovrで100%のブランチカバレッジを取得する方法

  21. 21

    チタンアクセラレーターでtextAreaの高さを動的に最大3行の高さ(whatsAppメッセージボックスのように)に増やす方法は?

  22. 22

    Linuxのusrでローカルの容量を増やす方法は何ですか?

  23. 23

    junit.xml形式でJest /イスタンブールカバレッジレポートを生成する方法はありますか?

  24. 24

    Perlソケットモジュールでsndbuf / rcvbufサイズのソケットオプションを増やす方法は?

  25. 25

    kubernetesワーカーノードのエフェメラルストレージのサイズを増やすにはどうすればよいですか

  26. 26

    Pesterを使用してすべてのブランチのコードカバレッジを取得するにはどうすればよいですか?

  27. 27

    古いファイル/カーネルを削除してスペースを増やし、ドライブをクリーンアップするために利用できる他のソフトウェアは何ですか?

  28. 28

    古いファイル/カーネルを削除してスペースを増やし、ドライブをクリーンアップするために利用できる他のソフトウェアは何ですか?

  29. 29

    リソースを試すための8つのブランチ-jacocoのカバレッジは可能ですか?

ホットタグ

アーカイブ