簡単な紹介
アサーションはでJavaを使用しているassert
達成するためのステートメント。アサーションを行う場合には、正しいと考えられています。それが失敗した場合、JVMは呼ばスローされますAssertionError
間違って。これは主に開発中の目的をテストするために使用されています。
assert
声明は、ブール式と組み合わせて使用される2つの異なる方法で書くことができます。
assert expression;
assert expression1 : expression2;
复制代码
例
public class AssertTest {
public static void main(String[] args) {
int value = 15;
assert value >= 20 : " Underweight";
System.out.println("value is " + value);
}
}
复制代码
出力:
value is 15
复制代码
私たちは見ることができますassert
Javaプログラムの実行がすべてのassert文が無視されることをデフォルトのアサーション・チェックによって開始されていない場合ので、文は動作しませんでした。
あなたはアサーションチェックを有効にしたい場合は、使用する必要がある-enableassertions
か、-ea
JVMパラメータが開くように、手動でアサーションチェックを無視したい場合は、使用することができます-disableassertions
または-da
表明文を無視するJVMパラメータ。
コマンドの実行java -ea AssertTest
オープニングアサーションの後に出力を:
Exception in thread "main" java.lang.AssertionError: Underweight
at AssertTest.main(AssertTest.java:11)
复制代码
書き込みに促さ最初の構文エラーメッセージを使用します:
public class AssertTest {
public static void main(String[] args) {
int value = 15;
assert value >= 20;
System.out.println("value is " + value);
}
}
复制代码
出力:
Exception in thread "main" java.lang.AssertionError
at AssertTest.main(AssertTest.java:11)
复制代码
なぜアサーション
- コードが実際に到達不能に到達していないようだということを確認してください
- ときに正しい仮定を確認してください
- ことを確認するために、分岐が到達することはできません
switch case
default
- オブジェクトの状態を確認します
- のメソッドをテストし始めました
- メソッド呼び出しをテストした後
注意事項
チェックロジック不可能主に使用アサーション。例えば、彼らは実行の終了後にコードの開始前に、所望の動作状態や状態のコードをチェックするために使用することができます。そして、異なる主張を扱う一般的な例外/エラーは、通常、実行時に無効になっています。
どこにアサーションの使用
- プライベートメソッドをパラメータ。唯一のコードの開発者が提供するプライベート・パラメータ、開発者はパラメータについての彼らの仮定をチェックすることもできます
- 支店の条件、例えば、
switch
声明 - メソッドの先頭に条件
アサーションを使用しない場合は
- アサーションは、エラー/例外メッセージを交換するために使用すべきではありません
- アサーションはには適用されません。
public
彼らは、ユーザによって提供することができるよう、プロセスのパラメータ - アサーションは、コマンドラインパラメータに使用すべきではありません
概要
- アサーションは、デバッグアサーション失敗がスローされます、モード
AssertionError
でのみ開発およびテスト段階ではアサーションを有効 - 回復可能なエラーのアサーションを使用することはできませんが、例外をスローする必要があります
- JAVAはほとんど使用されない、より良いアプローチは、ライトユニットテストにあるアサート
参考文献: