知识大全 利用spring2.5和Reflection简化测试中的mock[2]
Posted 知
篇首语:愿你一生努力,一生被爱。想要的都拥有,得不到的都释怀。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 利用spring2.5和Reflection简化测试中的mock[2]相关的知识,希望对你有一定的参考价值。
利用spring2.5和Reflection简化测试中的mock[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
每个mock对象都需要手工创建么?答案当然是否定的 我们有FactoryBean 通过在配置文件中指定bean的定义 让spring来替我们创建mock对象 如下是针对Foo类的定义
<bean id= mockFoo class= easymock EasyMock factory method= createMock > <constructor arg index= value= Foo /></bean>
< /constructor arg>与此同时 Spring TestContext框架提供了 @ContextConfiguration annotation 允许开发人员手工指定 Spring 配置文件所在的位置 这样 开发过程中 如果开发人员遵循比较好的配置文件组织结构 可以维护一套只用于测试的对象关系配置 里面只维护测试用到的 mock 对象 以及测试中用到的对 mock 对象有依赖关系的对象 在产品代码中则使用另一套配置文件 配置真实的业务对象
JUnit 之后 Test 类上可以通过 @RunWith 注解指定测试用例的 TestRunner Spring TestContext框架提供了扩展于 junit internal runners JUnit ClassRunner 的 SpringJUnit ClassRunner 它负责总装 Spring TestContext 测试框架并将其统一到 JUnit 框架中 这样 你可以把 Test 类上的关于 Spring Test 类的继承关系去掉 并且使用 JUnit 之后引入的 annotation 去掉其他任何 JUnit 需要的约定和方法继承 让 Test 类更加 POJO
Test 类也是 纯正 的 java 对象 自然也可以通过 Spring 来管理依赖关系 在 Test 类的成员变量上加上 @Autowired 声明 使用 SpringJUnit ClassRunner 运行 Test Case Spring 会很聪明地帮助我们摆平 Test 依赖的对象 然后再运行已经 合法 的 Test Case 只要你在用于测试的配置文件里面定义了完整的依赖关系 一如其他正常对象
<bean id= Helloword class= Helloworld autowire= byType />这样 经过上面三点变化 例子代码变成了这样
import static easymock EasyMock *;
@RunWith(SpringJUnit ClassRunner class)@ContextConfiguration( test context xml )public void HelloworldTest @Autowired private Foo foo; @Autowired private Bar bar; @Autowired private Helloworld helloworld; @Before public void before() reset(foo bar); @After public void after() verify(foo bar); @Test public void shouldSayHello() //set expectations about foo/bar replay(foo bar); helloworld sayHello(); //assert verification //
cha138/Article/program/Java/ky/201311/29007相关参考
知识大全 利用spring2.5和Reflection简化测试中的mock[1]
利用spring2.5和Reflection简化测试中的mock[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶
知识大全 Java中利用Reflection API优化代码
Java中利用ReflectionAPI优化代码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Spring2.5整合RMI技术 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Java的RMI
知识大全 Spring2.5整合ActiveMQ 5.2(P2P文本消息)
Spring2.5整合ActiveMQ5.2(P2P文本消息) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来
Spring2.5注释驱动与基于注释的MVC 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Sp
知识大全 Spring2.5访问Session属性的四种策略
Spring2.5访问Session属性的四种策略 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 通过Spring2.5对单元测试的Annotation支持进行TDD开发
通过Spring2.5对单元测试的Annotation支持进行TDD开发 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们
利用Java存储过程简化数据库操作 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 利用Java存
知识大全 Java Reflection (JAVA反射)详解
JavaReflection(JAVA反射)详解 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
C#利用反射简化给类字段赋值 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 这个例子主要的思路是