Junit:用反射测试 Spring(自动)接线?

发布于 2024-08-26 10:37:48 字数 148 浏览 4 评论 0原文

是否可以通过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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

萌面超妹 2024-09-02 10:37:48

更好的方法是使用 org.springframework.beans.factory.annotation.Required 注解 setter 方法,并添加所需的注解后处理器:

<!--
    This bean will cause an error if you forget to supply any properties
    annotated with @Required on the setter method; this is good for
    catching errors.
-->
<bean class="org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor" />

如果要验证与特定模式匹配的方法是否具有 @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:

<!--
    This bean will cause an error if you forget to supply any properties
    annotated with @Required on the setter method; this is good for
    catching errors.
-->
<bean class="org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor" />

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.

国际总奸 2024-09-02 10:37:48
  • 通过 XmlWebApplicationContext 的构造函数或通过 spring JUnit 测试运行程序 并让您的测试实现 ApplicationContextAware

  • 使用 ApplicationContext 的方法在 ReflectionUtilsReflectionTestUtils 的帮助下查找并验证您需要的一切。但请记住,如果注入失败,整个上下文初始化就会失败。

  • build your ApplicationContext either via XmlWebApplicationContext's constructor or via the spring JUnit test runner and make your test implement ApplicationContextAware

  • use the methods of ApplicationContext to find and verify everything you need, with the help of ReflectionUtils and ReflectionTestUtils. But have in mind that if injection fails, the whole context initialization fails.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文