2014-02-18 4 views
1

Я искал функцию отражения Java и узнал про шаблон прокси, используемый для написания процессоров аннотаций. Есть ли аналогичный @Before класс аннотации процессора, написанный внутри пакета org.junit? Я попытался найти его, но не смог найти точный класс, который выполняет эту работу.Как JUnit обрабатывает аннотацию @Before

ответ

3

Это зависит от того, что вы имеете в виду. Термин «annotation processor» часто относится к плагину, который выполняется во время фазы компиляции для генерации кода на основе аннотаций. В этом случае, однако, @Before, @After и @Test аннотации могут быть тривиально обработаны во время выполнения просто путем вызова Class.getMethods() для извлечения списка методов в тестовом классе, а затем с использованием Method.getAnnotation() или Method.getDeclaredAnnotations() для проверки аннотаций на методы этого класса, чтобы найти методы с этими аннотациями.

+0

Да, это правильно, но какой класс в рамках JUnit делает это? –

+1

TestClass.getTestMethods() делает это: https://github.com/junit-team/junit/blob/master/src/main/java/org/junit/internal/runners/TestClass.java –

Смежные вопросы