TestNG 中使用 Guice 来进行依赖注入

Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC)。

Guice非常小而且快。Guice是类型安全的,它能够对构造函数,属性,方法(包含任意个参数的任意方法,而不仅仅是setter方法)进行注入。

Guice采用Java加注解的方式进行托管对象的配置,充分利用IDE编译器的类型安全检查功能和自动重构功能,使得配置的更改也是类型安全的。

Guice提供模块对应的抽象module,使得架构和设计的模块概念产物与代码中的module类一一对应,更加便利的组织和梳理模块依赖关系,利于整体应用内部的依赖关系维护,而其他IOC框架是没有对应物的。

此外,借助privateModule的功能,可以实现模块接口的明确导出和实现封装,使得支持多数据源这类需求实现起来异常简单。

定义一个 Guice Module

这个 Guice Model 会实现 Module 接口。

 

 

然后对需要注入的类进行绑定。

绑定的语句在这里:

            binder.bind(TestConfigStorage.class).toInstance(config);
            binder.bind(WeChatOfficialAccountService.class).toInstance(weChatOfficialAccountService);
            binder.bind(WeChatMsgService.class).toInstance(weChatMsgService);

测试中使用

因为我们需要在测试中使用,所以我们会使用 testNG 的 Guice 注解。

 

 

使用下面的语句直接注入到模块中。

然后把需要的服务,注入进来就可以了。

   @Inject
    protected WeChatOfficialAccountService wxService;

是不是非常简单。

 

 

相对 Junit 测试框架来说,TestNG 使用 Guice 更加方便。

如何在 Junit 中使用 Guice ,请参考文章:Junit 5 如何使用 Guice DI 中的内容。

https://www.ossez.com/t/testng-guice/14396

 

posted @   huyuchengus  阅读(45)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2019-04-24 Confluence 6 针对 'unmigrated-wiki-markup' 宏重新尝试合并
2019-04-24 Confluence 6 针对合并完全失败的内容重新运行合并
2019-04-24 Confluence 6 在升级过程中查看合并日志
2019-04-24 Confluence 6 从 WIKI 标记整合到基于 XHTML 的存储格式
2018-04-24 Confluence 6 关于统一插件管理器
2018-04-24 Confluence 6 管理插件和组件
2018-04-24 Confluence 6 数据中心的 SAML 单点登录最佳实践和故障排除
点击右上角即可分享
微信分享提示