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 中的内容。
相关文章
- Java接口安全:SpringBoot防护XSS/SQL/重放攻击
- Springboot之登录模块探索(含Token,验证码,网络安全等知识)
- JAVA装饰器模式适用场景,优缺点是什么你知道吗这篇文章彻底讲透
- TestNG 中使用 Guice 来进行依赖注入
- 测试开发之自动化篇-Appium脚本开发
- 深入探索FastAPI单元测试:使用TestClient轻松测试你的API
- python单元测试框架之unittest和pytest的区别
- 要供暖了,壁挂炉怎么调?注意这四点,省气还少出问题
- 掌握Python中的单元测试:详尽指南与unittest
- 《shell》算术表达式-test测试语句-if流程语句