上海总部 | 南京分部
技术文章 Technology Categories
WEB测试
单元测试
功能测试类
性能测试
咨询服务 Services Advisory
注册香港公司 咨询热线:
400-920-8213
租车 上海专线:
86-021-51556355
咨询邮箱:
  jiyl@withubtraining.org
现在位置:首页 >>> 技术文章 >>> 单元测试 >>>查看文章
用Mock对Web应用进行单元测试
作者:admin   来源:本站    浏览:2174

在近来对IC(可持续集成)研究的过程中发现要对包含了大部分业务逻辑的web应用action编写单元测试案例还真不是一件容易的事。我们大部分人都知道JUnit但却不一定是到Mock。
Mock可以简单的理解成模拟器,它可以伪装成任意对象,如此一来,对于一些难以生成的对象例如:request,response,resultset等等,你可以直接通过Mock来模拟。有两个项目对Mock进行了封装提供了很简便的API,分别是jMock和EasyMock。
如要对以下类的upload方法编写单元测试:


 public class DfsAction {   
    public boolean upload(HttpServletRequest request,HttpServletResponse response){
        String fileId = request.getParameter("fileId");
        String fileKey = FdfsClient.storeFile(fileId);
        if(fileKey != null && fileKey.length() > 0){
            return true;
        }
        return false;
    }
}

  用jMock和Junit编写的单元测试方法如下:


public class DfsActionTest {
    @Test
    public void testUpload() {
        Mockery context = new Mockery();
        final HttpServletRequest request = context.mock(HttpServletRequest.class);
        final HttpServletResponse response = context.mock(HttpServletResponse.class);   
        context.checking(new Expectations() {{
            oneOf (request).getParameter("fileId"); will(returnValue("uploadfile.txt"));
        }});
        DfsAction action = new DfsAction();
        assertTrue(action.upload(request, response));
    }
}
培训中心简介 | 师资力量 | 教学环境 | 隐私条款 | 技术支持中心 | 合作伙伴 | 权威认证 | 交通路线 | 联系我们 | 在线留言
报名地址:上海市徐汇区乐山路33号2号楼4楼 邮政编码:200030
Copyright© 2000—2009 上海慧谷职业技能培训中心 All Right Reserved
Number of visitors:440716     沪ICP备10020950号