Guice 注入与TestNG结合
来源:互联网 发布:java split | 编辑:程序博客网 时间:2024/06/06 03:32
前言
Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC)。Guice非常小而且快。Guice是类型安全的,它能够对构造函数,属性,方法(包含任意个参数的任意方法,而不仅仅是setter方法)进行注入。Guice采用Java加注解的方式进行托管对象的配置,充分利用IDE编译器的类型安全检查功能和自动重构功能,使得配置的更改也是类型安全的。Guice提供模块对应的抽象module,使得架构和设计的模块概念产物与代码中的module类一一对应,更加便利的组织和梳理模块依赖关系,利于整体应用内部的依赖关系维护,而其他IOC框架是没有对应物的。此外,借助privateModule的功能,可以实现模块接口的明确导出和实现封装,使得支持多数据源这类需求实现起来异常简单
工程说明:
通过对象工厂(IObjectFactory)和模块(AbstractModule)结合使Guice注入在TestNG使用更加方便简洁
该方法调用injector相当方便,只需要加上注解@Inject就可以实现对象实例化
环境:
IDEA 、Maven
所需jar包
guice.jar
集成使用意义:
减少工程代码和测试代码的耦合性,让测试代码更加简洁
工程搭建:
1)配置Maven的pom.xml文件添加依赖包
<dependency> <groupId>com.google.inject</groupId> <artifactId>guice</artifactId> <version>3.0</version></dependency>
2)创建一个抽象类,继承AbstractModule类和接口IobjectFactory
public abstract class GuiceInjectFactory extends AbstractModule implements IObjectFactory { public ObjectFactoryImpl creator = new ObjectFactoryImpl(); private Injector injector; public GuiceInjectFactory(){ injector = Guice.createInjector(this); } @Override public Object newInstance(Constructor constructor, Object... params) { Object o = creator.newInstance(constructor,params); System.out.println("create test :"+o); injector.injectMembers(o); return o; }}
3)创建一个类继承上面的抽象类
public class UserAppFactory extends GuiceInjectFactory { @Override protected void configure() {//绑定实例对象 bind(HelloClass.class).toInstance(new HelloClass());//使用后面的类//绑定类//bind(HelloClass.class).to(HelloClass.class); //bind绑定需要注入 }}
4)testNG.xml suite套件添加属性object-factory
<suite name="testproj" parallel="false" object-factory="com.proj.Guice.UserAppFactory">…………</suite>
使用例子
工程代码例子
public class HelloClass { public void sayHello(){ System.out.println("hello world!"); }}
测试代码使用例子,使用注解@Inject
public class TestHello { @Inject HelloClass helloClass; @Test public void testHello(){ helloClass.sayHello(); }}
发现
会发现上面只需要使用注解@Inject
HelloClass 不需要实例化,Guice自动会进行这些工作,减少了工程代码和测试代码的耦合性
- Guice 注入与TestNG结合
- guice 注入
- testng与maven结合-通过maven可以编译testng
- 4.Selenium与TestNG测试框架结合
- 使用guice进行依赖注入与模块化系统
- Guice注入--Properties
- Googel Guice注入方式
- Guice 依赖注入
- Guice依赖注入(@Inject)
- Selenium结合TestNG自动化框架的设计与实施
- IOC依赖注入:google-guice
- Guice 三种注入方式
- Google Guice之选项注入
- Google Guice之注入方式
- Guice--Java依赖注入框架
- 依赖注入及Guice简述
- Guice 注入--(privateModule,intall(),expose())
- akka actor guice依赖注入
- 缓存
- 抽象工厂模式
- AOP 之 6.5 AspectJ切入点语法详解 ——跟我学spring3
- SVM算法原理以及sklearn实例
- linux 主要目录概述
- Guice 注入与TestNG结合
- CodeForces55D
- c++线程池
- GuessMusic项目制作过程思路
- Arrays.asList方法总结
- Linux AWK几种常见用法
- java网络协议文章(研究一下)
- java开发系统内核:进程初体验及代码其实现1
- pixhawk px4 spi设备驱动