EasyMock应用

来源:互联网 发布:科目二模拟驾驶软件 编辑:程序博客网 时间:2024/06/05 15:41

目前您可以下载的 EasyMock 最新版本是2.3---easymock-2.3.jar;
 EasyMock 采用“记录-----回放”的工作模式,基本使用步骤
- 创建Mock 对象的控制对象Control。
- 从控制对象中获取所需要的Mock 对象。
- 记录测试方法中所使用到的方法和返回值。
- 设置Control 对象到“回放”模式。
- 进行测试。
- 在测试完毕后,确认Mock 对象已经执行了刚才定义的所有操作。

一:步骤如下:
1:使用 EasyMock 生成 Mock 对象;
ResultSet mockResultSet = createMock(ResultSet.class);

如果需要在相对复杂的测试用例中使用多个 Mock 对象,EasyMock 提供了另外一种生成和管理 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);

如果 Mock 对象是通过 EasyMock.createMock() 或是 IMocksControl.createMock() 所创建的,那么在进行 verify 验证时,方法的调用顺序是不进行检查的。如果要创建方法调用的先后次序敏感的 Mock 对象(Strick Mock),应该使用 EasyMock.createStrickMock() 来创建,例如:
ResultSet strickMockResultSet = createStrickMock(ResultSet.class);


2:设定 Mock 对象的预期行为和输出,可以称为记录;
 在一个完整的测试过程中,一个 Mock 对象将会经历两个状态:Record 状态和 Replay 状态。Mock 对象一经创建,它的状态就被置为 Record。在 Record 状态,用户可以设定 Mock 对象的预期行为和输出,这些对象行为被录制下来,保存在 Mock 对象中。
mockResultSet.getString(1);
expectLastCall().andReturn("My return value");

3:将 Mock 对象切换到 Replay 状态,回放(用于激活mock对象);
replay(mockResultSet);

4:调用 Mock 对象方法进行单元测试;
fakeInvoke(mockObj); 

5:对 Mock 对象的行为进行验证
采用 EasyMock 类的静态方法 verify 进行验证:
verify(mockResultSet);

 

 

原创粉丝点击