Java单元测试进阶之如何打桩(用easymock轻松打桩)

       打桩(mock)是单元测试的重要内容和难点,学好打桩的技术,做单元测试基本就没什么困难了。 

       mock有两种,一种是静态的,一种是动态的。静态的就是在写测试代码之前根据需要打桩的类生成另外一个类,这个类就是mock object。动态的就是mock object是在测试代码运行的时候才生成的。所以很明显,动态打桩比静态打桩要方便地多。本章就是介绍动态打桩的工具。

        早期的动态mock工具只能够mock接口,而不能够mock类;现在的mock工具无论是mock接口还是类都能够轻松完成了。

        easymock就是其中的佼佼者,easymock现在已经是2.2版本了,本文使用的是easymock1.2_Java1.5版本。使用 easymock能够轻松的mock任何接口,但如果想mock类,那还需要另外一个lib,就是easymockclassextension,使用了 这个工具,你就能轻松地mock你要的任何类了。本文使用的是easymockclassextension1.2,使用这个库必须要cglib这个 jar包,而cglib又需要asm的jar包,所以要搭建好环境还得花些时间,不过当你把环境搞好之后,你便会发现物超所值,从此以后打桩无难事了。 cglib和asm的版本一定要适配,要不然不能正常工作,幸好cglib的网站已经提供了cglib和asm的绑定包,本文所用的是cglib- nodep-2.2_beta1版本。

        本章先对如何对接口进行打桩示例,下一章再对如何对接口进行打桩示例。

先看欲打桩接口代码:

/** **********************************************************
 * Project Name: lhjTest
 * File Name   : CoolInterface.java
 * File Desc   : CoolInterface.java
 * Author      : Administrator
 * Create      : 2007-3-25
 * Modify:
 **********************************************************
*/

package  org.lhj.cool.junit;

/**
 * 
@author  Administrator
 
*/

public   interface  CoolInterface
{
    String reverseString(String inputStr) 
throws  NullPointerException;
}

该接口很简单,只要一个reverString的方法。

下面看看欲测试类(使用了CoolInterface)的代码:

/** **********************************************************
 * Project Name: lhjTest
 * File Name   : UseCoolInterface.java
 * File Desc   : UseCoolInterface.java
 * Author      : Administrator
 * Create      : 2007-3-25
 * Modify:
 **********************************************************
*/

package  org.lhj.cool.mock;

import  org.lhj.cool.junit.CoolInterface;

/**
 * 
@author  Administrator
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值