【项目地址】
https://github.com/easymock/easymock
【简介】
EasyMock is a Java library that provides an easy way to use Mock Objects in unit testing.
You can find the website and user documentation at http://easymock.org.
【我的目的】
测试一个以HttpServletRequest对象为参数的方法,测试过程中还发现牵涉到HttpSession
【代码】
import org.easymock.EasyMock; import org.junit.Before; import org.junit.Test;
......
// Step 1 - 创建要mock的对象 HttpServletRequest req = createMock(HttpServletRequest.class); HttpSession session = createMock(HttpSession.class); // 对于将被调用的方法,使用expect指定返回值 expect(session.getAttribute("USER_INFO")).andReturn(null).times(1, 2); expect(req.getSession()).andReturn(session).times(1, 2); expect(req.getHeader("iv-user")).andReturn("testUser1").times(1, 2); Vector<String> groups = new Vector<String>(); groups.add("group1"); groups.add("group2"); groups.add("staff in (p)22"); Enumeration<String> emun = groups.elements(); expect(req.getHeaders("iv-groups")).andReturn(emun).times(1, 2); //如果mock对象的方法返回void,不能使用expect方法,而应该使用如下模式:先调用void方法,再调用expectLastCall() session.setAttribute("USER_INFO", null); EasyMock.expectLastCall(); // 准备模拟对象data replay(session); replay(req);
......
try { //Mock对象完毕,开始测试.... List userInfo = BizUtils.getUserInfo(req); assertTrue(userInfo!=null && userInfo.size()==2);
【简单总结】
由于时间关系没有做太多研究,要注意的地方就是:
- 本来只需要模拟HttpServletRequest,但被测试方法在执行过程中调用了request.getSession(),本来可以使用expect来处理该方法,但session我也是没办法自己随意创建的,也不能直接置为null,所以干脆也mock一个HttpSession;
- 对于返回为void的方法,处理方式较为特别
相关推荐
EasyMock 是一个强大的Java模拟框架,它允许开发者创建模拟对象(Mock Objects)来代替真实对象在单元测试中使用。这极大地简化了复杂系统的测试,因为我们可以控制这些模拟对象的行为,以便在测试过程中专注于代码...
EasyMock 是一个强大的Java模拟框架,它允许开发者在单元测试中创建和控制对象的行为,以模拟复杂的交互场景。这个框架的出现,极大地简化了对那些难以或无法直接实例化的类的测试,比如接口或者静态方法。EasyMock...
EasyMock适合简单的模拟场景,而Mockito提供了更丰富的功能和更简洁的API。PowerMock则可以模拟静态方法、构造函数等不易模拟的元素。 总的来说,EasyMock是Java单元测试中的一个重要工具,通过模拟对象和设置预期...
3. **示例文档**:这些示例通常是一些简单的代码片段,展示了如何在实际项目中应用EasyMock。它们可以作为起点,帮助初学者快速上手。 4. **所需jar包**:这是EasyMock运行所需的库文件。在Java项目中,你需要将...
这个框架使得测试更加简单,因为你可以模拟任何复杂的交互和行为,而无需实际运行依赖的组件。在给定的压缩包文件中,包含两个核心的JAR文件:`easymock.jar`和`easymockclassextension.jar`。 `easymock.jar`是...
EasyMock 是一套用于通过简单的方法对于给定的接口生成 Mock 对象的类库,旨在解决单元测试中的 Mock 对象构建问题。以下是 EasyMock 的详细介绍: 单元测试与 Mock 方法 单元测试是对应用中的某一个模块的功能...
EasyMock主要是为测试提供模拟数据,比如你可以模拟HttpServletRequest。
2. `GettingStartedGuide.pdf`:这个指南提供了快速上手的教程,指导开发者如何在项目中引入 EasyMock,并通过简单的例子展示如何进行单元测试。例如,使用 `EasyMock.expect()` 方法设定预期,然后调用 `EasyMock....
6. **示例**:压缩包中的示例提供了使用Easymock的实际代码,通过学习这些例子,你可以快速上手Easymock,并将它应用到自己的项目中。 7. **文档**:Easymock的文档详细介绍了如何安装、配置以及如何使用它的各种...
【EasyMock介绍】 EasyMock是一款强大的Java模拟框架,它允许开发者在进行单元测试时创建和控制对象的行为。这个工具使得测试更加独立,可以隔离被测试代码与其他依赖的系统,从而提高测试的效率和质量。EasyMock的...
EasyMock 是一个强大的Java模拟框架,它允许开发者在单元测试中创建和控制对象的行为,以模拟复杂的系统交互。这个框架的使用可以极大地提高测试的效率和覆盖率,因为它使得测试代码可以独立于实际的依赖进行执行。 ...
EasyMock是一款强大的模拟框架,主要用于Java单元测试。它允许开发者创建和控制对象的模拟行为,以便在测试过程中隔离被测试代码。在这个“EasyMock的安装与部署所需全部文件.zip”压缩包中,包含了在Windows环境下...
这款框架使得测试变得简单,因为它可以模拟任何接口的行为,而无需实际实现这些接口。下面我们将详细探讨Easymock的基本概念、工作原理以及如何通过源代码实例进行应用。 **Easymock基本概念** 1. **模拟对象...
EasyMock是Java编程中的一款强大的模拟框架,它允许开发者在单元测试中创建和控制对象的行为,以便于测试代码的特定部分。本手册主要关注的是EasyMock的2.4版本,这是一个广泛使用的版本,包含了丰富的功能和改进。...
EasyMock 是一套通过简单的方法对于指定的接口或类生成 Mock 对象的类库,它能利用对接口或类的模拟来辅助单元测试。本文将对 EasyMock 的功能和原理进行介绍,并通过示例来说明如何使用 EasyMock 进行单元测试。 ...
Easymock是一个开源项目,它的主要目标是提供一种简单的方式来创建和控制模拟对象。通过模拟对象,我们可以在不依赖实际环境的情况下测试代码,这在单元测试中尤其有用,因为我们可以精确地控制测试条件,避免了外部...
EasyMock 是一套通过简单的方法对于指定的接口或类生成 Mock 对象的类库,它能利用对接口或类的模拟来辅助单元测试。 Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较...
EasyMock 是一个强大的开源工具,专门用于生成模拟对象(Mock Objects),在软件开发特别是单元测试领域,它扮演着至关重要的角色。这个工具的版本为2.5.2,提供了对Java编程语言的支持,使得开发者能够方便地创建和...