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
を参照してください.
