在我们的Spring Boot
应用程序中,我们有一个带有@Scheduled
批注的方法:
@Scheduled(fixedRate = 1000L * 60 * 10, initialDelay = 1000L * 60 * 5)
public void doSomethingFromTimeToTime(){....}
在我们的Maven构建测试阶段,我们希望确保:
有没有办法在单元/集成测试中对此进行测试?还是在构建阶段用另一种方式?
我们不需要测试Spring的Scheduler本身,只需确保注释在那里。
答案 0 :(得分:2)
您可以使用Class
的{{3}}方法测试在Class
对象上是否存在注释,其中A
是通用类型参数,就像{{1 }}通常是这样。
用法示例:
T
有了注释后,就可以像使用普通类一样使用注释提供的方法访问字段:
Scheduled scheduledAnnotation = MySpringScheduler.class.getAnnotation(Scheduled.class).
答案 1 :(得分:0)
我想您可以通过反射轻松获得它
Class<?> cls = Class.forName(name);
cls.getDeclaredAnnotations(); // get all annotation
(cls.getDeclaredMethods()[0]).getAnnotations(); //get annotation of a method
Annotation ety = cls.getAnnotation(Annotation.class); // get annotation of particular annotation class
ref How to get the value of annotation using Reflection in Java