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