初学JMock

因为尝试使用TDD开发,要写TestCase,当然不可能不用mock object 。为了学写mock object,在摆渡和狗狗上找写资料,搜到了两个mock library项目,一个是EasyMock,一个是JMock。没时间细看,又找了篇对比文章《MockObjects的选择:EasyMock与JMock的比较》http://www.landiy.net/ttzy/study/jsp/jspbase/20040825193929.html  最后与作者一样,选择了jmock。jmock的缺点是还不支持 具体类可有构造参数,但我使用的是Spring,不是Pico ,所以对这个要求不高,而其他功能还是jmock全一些,还是决定使用它。最基本的使用方法如下:
import org.jmock.Mock;
import org.jmock.MockObjectTestCase
public class JMockUsage extends MockObjectTestCase {

    public void testReturnValueWithParemeter(){        
        // 构造 Mock 控制器
        Mock m = new Mock(TheInterfaceToMock.class);
        // 这是要测试 MockObject
        TheInterfaceToMock mock = (TheInterfaceToMock) m.proxy();
        // 期待的返回值
        SampleReturn sr = new SampleReturnImpl();
        // 期待的参数
        Parameter p = new ParameterImpl();
       
        // 控制器,期待一次,方法 sampleMethod ,参数等于 p(equals) ,将返回 sr
        m.expects(once()).method("sampleMethod")
.with(eq(p)).will(returnValue(sr));
              
        // 正式执行 mockobject
        SampleReturn ret = mock.sampleMethod(new ParameterImpl());
        // 确定返回值是相同的
        assertSame(sr,ret);
    }
 
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值