EasyMock

使用 EasyMock 进行单元测试

http://www.ibm.com/developerworks/cn/opensource/os-cn-easymock/

下载地址:
http://easymock.org/Downloads.html

EasyMock 默认只支持为接口生成 Mock 对象

1、构建Mock对象
  • 单个Mock对象 java.sql.ResultSet
  •  ResultSet mockResultSet = EasyMock.createMock(ResultSet.class);
    
  • 多个 Mock 对象
  • IMocksControl control = EasyMock.createControl();
    java.sql.Connection mockConnection = control.createMock(Connection.class);
    java.sql.Statement mockStatement = control.createMock(Statement.class);
    java.sql.ResultSet mockResultSet = control.createMock(ResultSet.class);
    


    2、添加Mock对象行为 Record

      (1)对 Mock 对象的特定方法作出调用;
      (2)通过 org.easymock.EasyMock 提供的静态方法 expectLastCall 获取上一次方法调用所对应的 IExpectationSetters 实例;
      (3)通过 IExpectationSetters 实例设定 Mock 对象的预期输出。

    2.1 设定预期返回值
    例:
      mockResultSet.getString(1);
      expectLastCall().andReturn("My return value");

      //方法总是返回"My return value"
      //对参数值进行匹配时,默认采用 Object.equals() 方法
      expectLastCall().andStubReturn("My return value");

    2.2 设定预期异常抛出

      IExpectationSetters<T> andThrow(Throwable throwable);
      //设定抛出默认异常的函数
      void andStubThrow(Throwable throwable);

    2.3 设定预期方法调用次数

      IExpectationSetters<T>times(int count);

      mockResultSet.getString(1);
      expectLastCall().andReturn("My return value").times(3);

    3 将 Mock 对象切换到 Replay 状态

      //由EasyMock.createMock方法生产
      EasyMock.replay(mockResultSet);

      //由IMocksControl 接口提供的 createMock 方法生成
      control.replay();

     
     

    你可能感兴趣的:(java,sql,单元测试,OS,OpenSource)