JUnit @Ruleを使用して、テスト中に実行されるコンパイラーを呼び出すことができます。その時点で、TypesおよびElementsユーティリティクラスを使用して、TypeMirrorおよびElementインスタンスを取得できます。
このようなルールは作成されており、http://github.com/google/compile-testingの一部であり、次のように使用できます。
public @Rule CompilationRule rule = new CompilationRule();
private Elements elements;
private Types types;
@Before
public void setup() {
elements = rule.getElements();
types = rule.getTypes();
}
@Test void testStuff() {
TypeElement typeElement = elements.getTypeElement("some.fully.qualified.ClassName");
// do stuff.
}
TypeMirrorインスタンスとElementインスタンスを操作するために実行できる操作の一部は、共通のサブモジュールのhttp://github.com/google/autoプロジェクトにあります。このプロジェクトには、これらを管理するためのユーティリティが含まれています。 java.lang.modelクラスが便利です。