关于easymock的典型使用方式,在easymock的官网文档中,有非常详尽的讲解,文档地址为 http://easymock.org/EasyMock3_0_Documentation.html,文档的开头一部分内容都是easymock中最基本的使用介绍,虽然是英文,但是非常容易看懂,适用新学者入门。
这里只罗列一些简单的常用功能,依然以前面教程中使用到的测试案例为例:
public class UserServiceImplTest extends Assert {
@Test
public void testQuery() {
User expectedUser = new User();
user.set.;
UserDao userDao = Easymock.createMock(UserDao.class);
Easymock.expect(userDao.getById("1001")).andReturn(expectedUser);
Easymock.replay(userDao);
UserServiceImpl service = new UserServiceImpl();
service.setUserDao(userDao);
user user = service.query("1001");
assertNotNull(user);
assertEquals(); //veify return user
Easymock.verify(userDao);
}
}
这段简短的代码中包含以下easymock的功能:
1. 创建mock对象
UserDao userDao = Easymock.createMock(UserDao.class);
2. 记录mock对象期望的行为
Easymock.expect(userDao.getById("1001")).andReturn(expectedUser);
这里记录了mock对象的行为:getById()方法被调用,调用次数为1(easymock之中如果没有明确指出调用次数,默认为1),参数为"1001",expectedUser将作为返回值。
3. 进入replay阶段
Easymock.replay(userDao);
4. 对mock对象执行验证
Easymock.verify(userDao);
对上面上面的代码稍加改动以展示easymock的其他基本功能:
1. 指定期望的调用次数
Easymock.expect(userDao.getById("1001")).andReturn(expectedUser).times(3);
2. 指定抛出期望的异常
Easymock.expect(userDao.getById("1001")).andThrow(new RuntimeException("no user exist"));
3. 记录void 方法的行为
Easymock.expect(userDao.getById("1001")) 这样的用法只能使用与mock对象的有返回值的方法,如果mock对象的方法是void,则需要使用expectLastCall():
userDao.someVoidMethod();
Easymock.expectLastCall();
和Easymock.expect(***)一样,同样支持指定调用次数,抛出异常等:
Easymock.expectLastCall().times(3);
Easymock.expectLastCall().andThrow(new RuntimeException("some error"));
4. 灵活的参数匹配
Easymock.expect(userDao.getById(Easymock.isA(String.class))).andReturn(expectedUser);
类似的还有anyInt(),anyObject(), isNull() , same(), startsWith()等诸多实现。具体细节请参考本教程中的"参数匹配"一文。
分享到:
相关推荐
离线安装包,亲测可用
离线安装包,亲测可用
在"powermock-easymock-junit-1.6.1.zip"这个压缩包中,包含了这些工具的特定版本。 首先,我们来了解一下EasyMock。EasyMock是一个模拟框架,它允许开发者创建预期的交互(mock objects)并验证对象之间如何进行...
这个压缩包"powermock-easymock-junit-1.5.4.zip"很可能包含了这三个库的特定版本1.5.4,便于开发者下载和集成到自己的项目中。 首先,我们来详细了解一下PowerMock。PowerMock是一个扩展了其他模拟框架(如...
#### 1.5 easymock教程-easymock的典型使用 easymock的典型使用场景包括: - **模拟依赖对象**:使用easymock模拟待测代码中的依赖对象,以确保测试的独立性和可重复性。 - **验证交互**:通过easymock记录待测...
easymock-2.5.2.jar easymock-2.5.2.jar 单元测试
EasyMock主要是为测试提供模拟数据,比如你可以模拟HttpServletRequest。
easymock需要用到的包,没有它不行,easymock-3.1.jar
EasyMock 是一套用于通过简单的方法对于给定的接口生成 Mock 对象的类库。它提供对接口的模拟,能够通过录制、回放、检查三步来完成大体的测试过程,可以验证方法的调用种类、次数、顺序,可以令 Mock 对象返回指定...
还在为EasyMock使用时出异常而烦恼? 本压缩包包含除了Junit4之外easyMock3.1所用到的所有相关jar包,junit4可自己导入eclipse自带的即可 本压缩包包括: asm.jar cglib.jar objenesis.jar等 其中asm与cglib已兼容,放心...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
这个“easyMock.zip”文件包含了一个关于EasyMock使用的教程,特别是它的典型应用,对于理解和掌握EasyMock在实际开发中的应用非常有帮助。 首先,EasyMock的基本概念是模拟对象。在单元测试中,我们通常需要测试一...
在“4-EasyMock-Servlet.rar”这个压缩包中,我们很可能是得到了一个关于如何使用EasyMock进行Servlet测试的教程或者示例代码。让我们详细探讨一下EasyMock与Servlet结合使用的相关知识点。 1. **EasyMock基本概念*...
在这个压缩包中,我们找到了相关的文档和jar包,这些都是理解并使用EasyMock 3.1的关键资源。 首先,让我们深入了解一下EasyMock的基本概念。EasyMock是一个强大的工具,它通过创建代理对象来模拟接口的行为,这些...
例如,使用`@Before`注解设置测试前的准备工作,使用`@Test`注解定义测试方法,并在其中使用EasyMock的API进行模拟和验证。 总之,EasyMock 3.2 提供了一个强大而灵活的模拟工具,帮助开发者编写高质量的单元测试,...
java运行依赖jar包
扩展架包啊...easymockclassextension-3.1