`
bailingeye
  • 浏览: 21335 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

j2ee环境junit、mock测试

    博客分类:
  • java
阅读更多

一、junit测试

关键在于配置文件的引用和spring的依赖注入!

 

二、spring环境下junit-mock DAO测试

      通过手动修改spring的XML配置文件,修改注入的DAO。自己手动建立一个DAO文件,通过修改springDAO配置文件,DAO接口文件所对应的DAOImpl实现文件的具体类,通过面向接口编程特点,mock一个DAO用于junit测试。mock测试的好处有很多,比如:可以不依赖于数据库的数据、不用回滚数据库数据,甚至数据库没设计好也能测试等等。

      比较麻烦的是,DAOImpl中要进行大量的手动数据的赋值,比如get方法,其他方法返回值一般都是int或者boolean型,就比较随便。

 

三、利用easy-mock 测试

      easy-mock这个第三方提供的jar包,即将我们手工mock的步骤记录然后replay,并且有一些方法可以直接写入返回值,次数等,不需要自己再拟建。可是在实际应用中,这个方法有好处也有坏处,就是不能将数据和测试方法分开,必须写在一起,不利于模块化,自动化等等。

 

 

      总结:总体来讲还是比较简单,主要是理解spring的依赖注入DI(也有称控制反转IOC),对应的关键操作在于spring的配置文件的设置,将dao注入到对应service。举个小例子!

    <bean id="warehouseManagementServiceTarget" class="com.fujitsu.cn.bfs.fuhua.wms.service.mm.WarehouseManagementServiceImpl">
		<property name="transactionTemplate">
			<ref bean="transactionManager" />
		</property>
        <property name="zonesListSearchDao">
            <ref bean="zonesListSearchDao" />
        </property>
        <property name="w_MZoneDao">
            <ref bean="w_MZoneDao" />
        </property>

        <property name="locationsListSearchDao">
            <ref bean="locationsListSearchDao" />
        </property>    
    </bean>

 比如这段spring配置文件的xml,bean id是真正注入的目标,这里即warehouseManagementServiceTarget。property =setter ,将ref bean 放到这个service中的name=xxxdao中去。虽然这两个名字一样,但所指不相同。

 

 

分享到:
评论
1 楼 hf5208332 2012-07-12  
我想知道怎么用mock来写单元测试

我遇到的问题是用maven编译项目,存在两个maven项目一个是db一个是domain
domain下有个数据库服务接口,在db实现了该接口,在db的pom.xml写了db依赖domain

而在domain下是主要业务,用spring来管理运行时依赖,domain下的项目需要查询数据库操作等,在domain下写与数据库关联操作的junit应该怎么写呢?

相关推荐

Global site tag (gtag.js) - Google Analytics