知识大全 利用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技术

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

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 存储过程简化数据库操作

利用Java存储过程简化数据库操作  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  利用Java存

知识大全 Java Reflection (JAVA反射)详解

JavaReflection(JAVA反射)详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 C#利用反射简化给类字段赋值

C#利用反射简化给类字段赋值  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这个例子主要的思路是