説明

「単体テストの問題の修正」> 「実行時例外」カテゴリに属するメッセージ。このメッセージは、テスト ケースで予想外の例外が発生したときにレポートされます。例外の発生はコードの堅牢さが不十分なことを表します。例外が発生すると、フローが予想外に移動したりスレッドが終了したりすることによって、不安定な動作や予想外の結果が発生するだけでなく、クラッシュやセキュリティ違反が起こることさえあります。

デプロイされたアプリケーションの実行中に例外が発生した場合、システムとアプリケーションが不安定になったり、セキュリティの脆弱性が発生したり、ダウン タイムが頻繁に起こったりします。

単体テストの実行中に例外がレポートされた場合、テスト ケースの実行によって、テスト対象コードが例外をスローする条件が発生したことを表します。テスト対象のコードをアプリケーションに統合した後に、同じ条件がアプリケーションで発生して例外がスローされる可能性があります。デプロイされたアプリケーションの実行中にこの例外が発生するのは、非常に重大な問題です。

推奨される対応

このカテゴリでレポートされる例外は、不正な動作のメソッド、つまり与えられた引数に対して例外をスローしてはいけないメソッドを表します。

キャッチされない実行時例外がレポートされた場合、他のコードの作業に移る前にすべての例外に対処することを推奨します。コードの変更が必要な場合、開発プロセスの後の段階で対処するよりも、レポートされてすぐに修正する方が簡単であり労力もかかりません。コードが正しく動作している場合、その動作を明確に文書化することによって混乱を防ぎエラーの挿入を防ぐことができます。コードの正しい動作を他の開発者がわかるようにしておけば、エラーが誤って挿入される可能性が低くなります。

単体テストの実行中に例外が発生した場合、次の対応を推奨します。

  • デバッガーを使って失敗の原因を調べます。詳細については 「テスト実行中のデバッガーの使用」 を参照してください。  
  • 例外がテスト対象コード中のバグを示しているのか、それともテスト対象コードを呼び出しているテスト ハーネスによって発生しているのかを判断します。  
  • テスト対象のコード中のバグによって例外が発生している場合、コードを修正します。  
  • 例外が意図的な物である場合、「テスト スイート/テスト ケースの登録マクロ」の説明にあるように、 CPPTEST_TEST_EXCEPTION を使ってテスト ケースの登録を変更します。  
  • 多くの場合、例外の原因は例外が出現したテスト対象コードではなく、テスト対象コードを呼び出しているコードです。テスト対象コードを呼び出しているアプリケーション コードをレビューし、テスト ハーネスによって発見された既知の例外を引き起こす条件をアプリケーションが生成できないようにします。  

テスト対象コードは、後であなたのコントロール下にないコードから呼び出されるかもしれません。そして、この例外を引き起こす条件が発生するかもしれません。したがって、例外を引き起こす入力からコードを守ることが絶対に必要です。

  • No labels