Junit:用反射测试 Spring(自动)接线?
是否可以通过JUnit测试Spring接线是否成功?
我想通过反思来做到这一点。例如:获取所有带有 id *Controller
的 bean 并测试字段 *services
是否不为空?
谢谢你!
Is it possible to JUnit test if wiring by Spring is succesfully?
I would like to do this by reflection. Like: get all beans with id *Controller
and test if the fields *services
are not null?
Thank you!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
更好的方法是使用 org.springframework.beans.factory.annotation.Required 注解 setter 方法,并添加所需的注解后处理器:
如果要验证与特定模式匹配的方法是否具有 @Required 注解,请实现编译器钩子,一个 AnnotationProcessor,如果匹配特定模式的方法未使用 @Required 进行注释,则会导致编译器失败。
A better way is to annotate the setter methods with org.springframework.beans.factory.annotation.Required, and add the required annotations post processor:
If you want to verify that methods that match a certain pattern have the @Required annotation, implement a compiler hook, an AnnotationProcessor, that causes a compiler failure if methods matching a certain pattern aren't annotated with @Required.
通过
XmlWebApplicationContext
的构造函数或通过 spring JUnit 测试运行程序 并让您的测试实现ApplicationContextAware
使用
ApplicationContext
的方法在ReflectionUtils
和ReflectionTestUtils
的帮助下查找并验证您需要的一切。但请记住,如果注入失败,整个上下文初始化就会失败。build your
ApplicationContext
either viaXmlWebApplicationContext
's constructor or via the spring JUnit test runner and make your test implementApplicationContextAware
use the methods of
ApplicationContext
to find and verify everything you need, with the help ofReflectionUtils
andReflectionTestUtils
. But have in mind that if injection fails, the whole context initialization fails.