Aptina Unit
Aptina Unit は, Pluggable Annotation Processing API (JSR 269) を利用した注釈処理ツールの単体テストを支援する JUnit 拡張を提供します.
Usage
Aptina Unit は,Aptina Unit の Jar ファイルをクラスパスに設定するだけで使うことができます.
Aptina Unit の Jar ファイルは こちら からダウンロードしてください.
Maven での使い方
Maven を Java6 以降で実行する必要があります.
pom.xml に Seasar プロジェクトの Maven リポジトリを追加します.
<repositories> <repository> <id>maven.seasar.org</id> <name>The Seasar Foundation Maven2 Repository</name> <url>http://maven.seasar.org/maven2</url> </repository> </repositories>
依存ライブラリに Aptina Unit を追加します.
<dependency> <groupId>org.seasar.aptina</groupId> <artifactId>aptina-unit</artifactId> <version>x.y.z</version> <scope>test</scope> </dependency>
AptinaTestCase
AptinaTestCase
は JUnit の
TestCase
を拡張したクラスで, テストメソッドの中で
Java Compiler API (JSR 199)
を使用して実際に Java コンパイラを起動し,
注釈処理ツールの単体テストを可能にします.
テストクラスを IDE で起動すれば, Annotation Processor のデバッグも容易にできます.
注釈処理ツールのテストクラスを作成するには,
AptinaTestCase
のサブクラスを作成します.
次のサンプルは,
src/test/java
フォルダにある
TestSource.java
をコンパイルすると,
foo.bar.Baz
クラスのソースを生成する注釈処理ツール (TestProcessor) のテストクラスです.
public class TestProcessorTest extends AptinaTestCase { @Override protected void setUp() throws Exception { super.setUp(); // ソースパスを追加 addSourcePath("src/test/java"); } public void test() throws Exception { // テスト対象の Annotation Processor を生成して追加 TestProcessor processor = new TestProcessor(); addProcessor(processor); // コンパイル対象を追加 addCompilationUnit(TestSource.class); // コンパイル実行 compile(); // テスト対象の Annotation Processor が生成したソースを検証 assertEqualsGeneratedSource("package foo.bar; public class Baz {}", "foo.bar.Baz"); } }
テスト対象の Annotation Processor が生成する Java ソースやリソースは,
ファイルシステム上ではなくメモリ上に作成されます.
AptinaTestCase
は,生成された Java ソースやリソースの内容を取得するメソッドや,
内容を検証する assert メソッドも提供します.
詳細は
AptinaTestCase
の
Javadoc
を参照してください.