assertions
タイプは、Java プログラム全体またはプログラムのコンポーネントで Java 1.4 のアサーション機能を有効または無効にします。<java>
と <junit>
で使用して、コードに追加の検証を追加できます。
アサーションは、Java SE ドキュメンテーション および Java 言語仕様 で扱われています。
注目する重要な点は、アサーションが失敗したときに java.lang.AssertionError
がスローされることと、この機能は Java 1.4 以降でのみ使用可能であることです。アサーションを有効にするには、ソースをコンパイルするときに <javac>
で source=1.4
(以降)を設定し、テストする assert
ステートメントをコードに含める必要があります。このような操作の結果として、それ以前のバージョンの Java ではコンパイルも実行もできないコードが生成されます。このため、Apache Ant 自体は現在アサーションを含んでいません。
ネストされたアサーション要素を使用してタスクでアサーションを有効(または無効)にすると、クラスローダーまたはコマンドラインが適切なオプションで変更されます。つまり、コードにアサーションがない場合でも、実行される JVM はバージョン 1.4 以降である必要があります。それ以前の JVM でアサーションを有効にしようとすると、「オプションが認識できません」というエラーが発生し、JVM は起動しません。
属性 | 説明 | 必須 |
---|---|---|
enableSystemAssertions | システムアサーションをオンまたはオフにするフラグ。 | いいえ; デフォルトは unspecifiedです。 |
システムアサーションが有効にも無効にも設定されていない場合、JVM にアサーション情報は提供されません。現在の JVM のデフォルトの処理は、システムアサーションを無効にすることです。
また、JRE のどの部分が有益なアサーションを備えているかについては、明らかなドキュメントがないことに注意してください。
コードの一部でアサーションを有効にします。パッケージもクラスも指定されていない場合、(ユーザー)コード全体でアサーションが有効になります。
属性 | 説明 | 必須 |
---|---|---|
class | アサーションを有効にするクラスの名前 | いいえ |
package | すべてのクラスでアサーションを有効にするパッケージの名前。(サブパッケージを含みます。)匿名パッケージには ...を使用します。 |
いいえ |
コードの一部でアサーションを無効にします。
属性 | 説明 | 必須 |
---|---|---|
class | アサーションを無効にするクラスの名前 | いいえ |
package | すべてのクラスでアサーションを無効にするパッケージの名前。(サブパッケージを含みます。)匿名パッケージには ...を使用します。 |
いいえ |
アサーションはデフォルトで無効になっているため、親パッケージでアサーションが有効になっている場合にのみアサーションを無効にする意味があります。
JRE に含まれていないすべてのクラス(つまり、システムクラスではないすべてのクラス)でアサーションが有効になります。
<assertions> <enable/> </assertions>
Test という名前のクラスでアサーションを有効にする
<assertions> <enable class="Test"/> </assertions>
org.apache
パッケージと org.apache.
プレフィックスで始まるすべてのパッケージ(Ant を除く、org.apache.tools.ant.Main
を含む)でアサーションを有効にします。
<assertions> <enable package="org.apache"/> </assertions>
Ant を除くすべての org.apache
パッケージ(org.apache.tools.ant.Main
を含む)でシステムアサーションとアサーションを有効にします。
<assertions enableSystemAssertions="true"> <enable package="org.apache"/> <disable package="org.apache.tools.ant"/> <enable class="org.apache.tools.ant.Main"/> </assertions>
システムアサーションを無効にして、匿名パッケージのもの有効にします
<assertions enableSystemAssertions="false"> <enable package="..."/> </assertions>
このタイプはデータ型であるため、アサーションを宣言して後でそれらを使用できます
<assertions id="project.assertions"> <enable package="org.apache.test"/> </assertions> <assertions refid="project.assertions"/>