Что именно делает аннотация @Test Kotlin методов испытаний? - PullRequest
0 голосов
/ 01 мая 2020

При написании модульных тестов в Kotlin методы тестирования обычно аннотируются @Test. Что именно это делает?

То есть, как я понимаю на уровне черного ящика, ответ таков: «Это заставляет их распознаваться средами модульного тестирования, такими как JUnit». Но я хотел бы иметь возможность заглянуть внутрь блока (в идеале более прямым путем, чем чтение ~ 80 000 строк кода, составляющих последнюю версию JUnit). Задокументировано ли это где-нибудь, как именно распознается аннотация и что происходит, когда она есть?

1 Ответ

4 голосов
/ 01 мая 2020

В качестве отправной точки вы можете прочитать в целом об обработке аннотации в java, например, здесь: https://docs.oracle.com/javase/8/docs/api/javax/annotation/processing/Processor.html

Конкретный класс в JUnit4, который используется для чтения этой аннотации https://github.com/junit-team/junit4/blob/master/src/main/java/org/junit/internal/runners/TestClass.java

На высоком уровне: с обработкой аннотаций вы можете сделать что-то вроде

List<TestMethods> methods = getTestMethodsWithAnnotation(@Test) methods.foreach(method -> TestRunner.run(method))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...