论坛首页 Java企业应用论坛

窥探EasyMock(1)基础使用篇

浏览 9813 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-01-05   最后修改:2009-01-06

EasyMock的应用分为5步:

 

1. 使用 EasyMock 生成 Mock 对象;

 

 

SomeInterface mockObj = createMock(SomeInterface.class);
 

 

    如果想对一个类(而非接口)生成mock对象,需要EasyMock Class Extension

 

    如果是一个相对复杂的测试用例,需要对多个接口生成mock对象,使用MockControl来管理:

 

 

IMocksControl control = createControl();
SomeInterface mockObj = control.createMock(SomeInterface.class);
AnotherInterface mockAnotherObj = control.createMock(AnotherInterface.class);
 

 

 

2. 设定 Mock 对象的预期行为和输出;

 

 

expect(mockObj.someAction(1)).andReturn("one");
 

 

    如果是一个返回void的方法调用:

 

 

mockObj.noReturnValueAction();
expectLastCall();   // 最新版本的EasyMock可以忽略此句
 

 


3. 将 Mock 对象切换到 Replay 状态;

 

 

replay(mockObj);
 

 

    对于使用control来管理的情况:

 

 

control.replay();
 


4. 调用 Mock 对象方法进行单元测试;

 

 

fakeInvoke(mockObj);
 


5. 对 Mock 对象的行为进行验证

 

 

verify(mockObj);
 

 

    对于使用control来管理的情况:

 

 

control.verify();
 
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics