分享

什么是mock测试(3)

 知识储备库_wucl 2011-06-13

  例子一

  以下是一个简单例子,为了方便对比,这里重新实现了JMock例子一,代码如下:

  package test1;
  import org.easymock.*;
  import junit.framework.*;
  import javax.servlet.http.*;
  public class MockRequestTest extends TestCase{
  private MockControl control;
  private HttpServletRequest mockRequest;
  public void testMockRequest(){
  //创建一个Mock HttpServletRequest的MockControl对象
  control = MockControl.createControl(HttpServletRequest.class);
  //获取一个Mock HttpServletRequest对象
  mockRequest = (HttpServletRequest) control.getMock();
  //设置期望调用的Mock HttpServletRequest对象的方法
  mockRequest.getParameter("name");
  //设置调用方法期望的返回值,并指定调用次数
  //以下后两个参数表示最少调用一次,最多调用一次
  control.setReturnValue("kongxx" ,1 ,1);
  //设置Mock HttpServletRequest的状态,
  //表示此Mock HttpServletRequest对象可以被使用
  control.replay();
  //使用断言检查调用
  assertEquals("kongxx",mockRequest.getParameter("name"));
  //验证期望的调用
  control.verify();
  }
  }

 

  编译并将其当做一个Test Case运行,会发现两个测试方法均测试成功。

  例子二

  同例子一样,对JMock例子二重新实现产生了EasyMock的例子二。

  需要测试的类代码如下:

  package test2;
  import javax.servlet.http.*;
  public class MyClass {
  public String getName(HttpServletRequest request) {
  return request.getParameter("name");
  }
  public String getPassword(HttpServletRequest request) {
  return request.getParameter("password");
  }
  }

 

  测试类代码如下:

  package test2;
  import org.easymock.*;
  import junit.framework.*;
  import javax.servlet.http.*;
  public class TestMyClass extends TestCase{
  private MockControl control;
  private HttpServletRequest mockRequest;
  private MyClass myclass ;
  public void setUp() {
  myclass = new MyClass();
  //创建一个Mock HttpServletRequest的MockControl对象
  control = MockControl.createControl(HttpServletRequest.class);
  //获取一个Mock HttpServletRequest对象
  mockRequest = (HttpServletRequest) control.g

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多