Unit Testing for an Annotation Processing Tools

Aptina Unit は, Pluggable Annotation Processing API (JSR 269) を利用した注釈処理ツールの単体テストを支援する JUnit 拡張を提供します.

Aptina Unit は,Aptina Unit の Jar ファイルをクラスパスに設定するだけで使うことができます.

Aptina Unit の Jar ファイルは こちら からダウンロードしてください.

Maven を Java6 以降で実行する必要があります.

pom.xml に Seasar プロジェクトの Maven リポジトリを追加します.

maven.seasar.org The Seasar Foundation Maven2 Repository http://maven.seasar.org/maven2 ]]>

依存ライブラリに Aptina Unit を追加します.

org.seasar.aptina aptina-unit x.y.z test ]]>

AptinaTestCase は JUnit の TestCase を拡張したクラスで, テストメソッドの中で Java Compiler API (JSR 199) を使用して実際に Java コンパイラを起動し, 注釈処理ツールの単体テストを可能にします.

テストクラスを IDE で起動すれば, Annotation Processor のデバッグも容易にできます.

注釈処理ツールのテストクラスを作成するには, AptinaTestCase のサブクラスを作成します.

次のサンプルは, src/test/java フォルダにある TestSource.java をコンパイルすると, foo.bar.Baz クラスのソースを生成する注釈処理ツール (TestProcessor) のテストクラスです.

テスト対象の Annotation Processor が生成する Java ソースやリソースは, ファイルシステム上ではなくメモリ上に作成されます. AptinaTestCase は,生成された Java ソースやリソースの内容を取得するメソッドや, 内容を検証する assert メソッドも提供します.

詳細は AptinaTestCaseJavadoc を参照してください.