20190902 On Java 8第16章コードチェック
1966 ワード
第十六章コードチェック
コードが正しいことを保証することはできません.それが間違っていることを証明するしかありません.
テスト
カバー率をテストする幻覚
テストオーバーライド率は、コードオーバーライド率とも呼ばれ、メトリックコードのテストパーセントです.パーセンテージが高いほど、テストのオーバーライド率が大きくなります.
未知のコードライブラリを解析する場合、オーバーライド率をテストすることは、粗いメトリックとして役立ちます.オーバーライド率ツール(Override Rate Tool)レポートの値が特に低い場合(たとえば40パーセント未満)は、オーバーライドが不十分であることを示します.しかし、非常に高い値も疑わしい.これは、プログラミング分野に対する理解が不足している人がチームに武断的な決定を迫られていることを示している.上書きツールの最適な用途は、コードライブラリでテストされていない部分を発見することです.ただし、オーバーライド率に依存してテスト品質の情報を取得しないでください.
ぜんちじょうけん
Javaアサーション構文
断言文には2つの形式があり、
AssertionError
の異常を放出します.assert boolean-expression;
assert boolean-expression: information-expression;
information-expression
は、任意のタイプのオブジェクトを生成することができる.プログラムを実行するときに断言を明示的に有効にし、起動時に仮想マシンパラメータを追加する必要があります.1つの簡単な方法は、
-ea
flagを使用することであり、-enableassertion
として表すこともでき、これはプログラムを実行し、任意の断言文を実行する.java -ea Assert1
もう1つの方法は、クラスローダオブジェクト(ClassLoader)にリンクすることによって、あなたの断言を制御する方法です.クラス・ローダでは、動的にブレークスルーを有効または無効にする方法がいくつかあります.
setDefaultAssertionStatus()
は、後でロードされるすべてのクラスにブレークスルー・ステータスを設定します.Guava断言
Javaローカル断言を有効にするのは面倒なので、Guavaチームは常に置換断言を有効にする
Verify
クラスを追加しました.彼らはVerify
の静的導入方法を提案した.verify()
とverifyNotNull()
をサポートします.Guava前置条件の使用
com.google.common.base.Preconditions.checkXXX
各先行条件には、3つの異なるリロード形式があります.1つは何もありません.1つは単純な文字列メッセージと、1つの文字列と置換値があります.
テスト駆動開発(TDD)
TDDの目標は、完全な実装後に完全なテストオーバーライドを実装しようとすると、通常、急いでいるか無意味なテストが発生するため、より良い、より周到なテストを生成することである.
ログ#ログ#
業界内では、標準Javaリリースのログパッケージ(
java.util.logging
)の設計がかなり悪いと一般的に考えられています.ほとんどの人は、他の代替ログパッケージを選択します.転載先:https://www.cnblogs.com/huangwenjie/p/11449507.html