Kotlin测试方法的@Test注释究竟做了什么



在Kotlin中编写单元测试时,测试方法通常被注释为@test。这到底是干什么的?

也就是说,我知道在黑盒级别,答案是"这会导致它们被JUnit等单元测试框架识别"。但我希望能够查看盒子内部(理想情况下,通过比阅读包含最新版本JUnit的约80000行代码更直接的途径(。它在任何地方都有记录吗?注释是如何被识别的?当它被识别时会发生什么?

作为起点,您可以阅读关于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))

最新更新