EasyMock采用“记录-----回放”的工作模式,基本使用步骤:
- 创建Mock对象的控制对象Control。
- 从控制对象中获取所需要的Mock对象。
- 记录测试方法中所使用到的方法和返回值。
- 设置Control对象到“回放”模式。
- 进行测试。
- 在测试完毕后,确认Mock对象已经执行了刚才定义的所有操作。
找了个例子,这个例子的主要功能是模拟HttpServlet对servlet进行测试。
package com.servlet.test;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
public class LoginServlet extends HttpServlet
{
/**
*
*/
private static final long serialVersionUID = 6648223615334008738L;
protected void doGet(HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) throws ServletException,
IOException
{
super.doGet(httpServletRequest, httpServletResponse);
}
public void doPost(HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) throws ServletException,
IOException
{
// super.doPost(httpServletRequest, httpServletResponse);
String username = httpServletRequest.getParameter("username");
String password = httpServletRequest.getParameter("password");
System.out.println(">>>>> " + username + " " + password);
}
}
mock测试:
package com.servlet.test;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.verify;
import static org.easymock.EasyMock.replay;
import junit.framework.TestCase;
public class TestMockUnit extends TestCase
{
public void testLoginFailed() throws IOException, ServletException
{
// 1.获取Mock对象。
// 因为在doGet()和doPost()用到了HttpServletRequest
HttpServletRequest request = createMock(HttpServletRequest.class);
// 2.对象,需要对其模拟
// 模拟httpServletRequest.getParameter("username");
expect(request.getParameter("username")).andReturn("12345");
// 3.得到的值。在模拟测试中,模拟对象是不执行任何业务操作的,需要模拟出来
expect(request.getParameter("password")).andReturn("ABCDEF");
replay(request);
LoginServlet servlet = new LoginServlet();
try
{
servlet.doPost(request, null);
// 4.在调用用的模拟对象前,一定要执行verify操作
verify(request);
}
catch (ServletException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
总结:上面只是让大家明白easymock的基本主要的api和功能还需要查看它的api,easymock的功能实在太多,
如果您需要在单元测试中构建 Mock 对象来模拟协同模块或一些复杂对象,EasyMock 是一个可以选用的优秀框架。
EasyMock 提供了简便的方法创建 Mock 对象:通过定义 Mock 对象的预期行为和输出,你可以设定该 Mock 对象在实
际测试中被调用方法的返回值、异常抛出和被调用次数。通过创建一个可以替代现有对象的 Mock 对象,EasyMock 使得
开发人员在测试时无需编写自定义的 Mock 对象,从而避免了额外的编码工作和因此引入错误的机会。
分享到:
相关推荐
通过深入理解和熟练运用EasyMock,开发者可以在单元测试中更有效地控制和验证代码行为,提升软件质量。在实际项目中,结合IDE中的测试工具和自动化测试框架,如JUnit,EasyMock的效能会得到更大发挥。文件"EasyMock ...
EasyMock和Mockito是两个广泛使用的Java模拟框架,它们可以帮助开发者在隔离环境中测试代码,避免了依赖其他组件或服务的复杂性。本文将详细介绍这两个工具的使用方法、原理和差异。 **EasyMock** EasyMock是一个...
EasyMock是Java编程中的一款强大的模拟框架,它允许开发者在单元测试中创建和控制...通过阅读《EasyMock使用简明手册》和解压后的easymock2.4.zip文件,开发者可以深入理解并掌握如何有效地使用EasyMock进行单元测试。
在压缩包中的"easymock"文件中,可能包含了Easymock的使用教程、源代码示例和相关文档,这些都是深入理解和学习Easymock的好资源。通过阅读这些材料,你可以更好地掌握如何在实际项目中运用Easymock进行单元测试,...
而JMock和EasyMock则是两种广泛使用的Java单元测试框架,它们允许开发者模拟对象的行为和交互,以便于测试复杂的系统。本资源包含JMock 2.5.1和EasyMock 3.0的库文件,使得开发者在进行单元测试时无需再四处寻找相关...
EasyMock 是一个强大的Java模拟框架,它允许开发者在单元测试中...了解和掌握EasyMock的使用,能够提升测试的质量,降低软件维护的成本。在实际开发中,应根据项目需求选择合适的模拟框架,确保测试的有效性和效率。
Junit和EasyMock是Java领域中广泛使用的两个工具,它们协同工作,提供了强大的单元测试能力。本文将深入探讨这两个工具的使用,并通过案例分析帮助你更好地理解和应用它们。 **Junit简介** JUnit是Java编程语言中最...
1. **API文档**:这是EasyMock的接口文档,详细描述了各个类和方法的使用方法、参数和返回值,是开发者理解和学习EasyMock的关键资料。通过阅读API文档,你可以了解如何创建模拟对象,设置期望值以及验证行为。 2. ...
同时,熟悉Java编程和单元测试的基本概念对于理解和使用EasyMock非常重要。 总的来说,这个压缩包提供了一个完整的环境,让你可以在Windows上搭建并运行EasyMock。通过深入学习每个组件的工作原理和EasyMock的使用...
这个压缩包包含的是Easymock的3.2版本,其中包括文档、源码和示例,对于学习和理解Easymock的工作原理以及如何在实际项目中使用它非常有帮助。 Easymock的主要功能是模拟(mock)Java接口的行为,使得测试可以独立...
这篇文档将深入探讨 EasyMock 的使用方法和原理,以便更好地理解和应用这一工具。 首先,让我们理解 EasyMock 的核心概念。EasyMock 允许开发者创建“mock”对象,这些对象在测试时代替实际依赖,以便我们可以控制...
在使用PowerMock和EasyMock时,需要注意以下几点: 1. **适度模拟**:虽然模拟可以减少测试的复杂性,但过度模拟可能导致测试不准确,无法反映出真实环境的行为。 2. **隔离测试**:确保每个测试都是独立的,不会受...
EasyMock2.2版本相较于早期版本(如EasyMock1.x),在使用方式和功能上进行了显著的改进,使其更加灵活和易于使用。 #### 易于理解的示例:`ClassUnderTest`测试 为了深入理解EasyMock2.2的使用方法,我们将通过一...
easymock.jar文件是Easymock框架的核心库,包含了所有必要的类和接口,使得开发人员可以直接在项目中引入并使用Easymock的功能。在给定的压缩包中,我们看到的是easymock-3.3版本,这是Easymock的一个稳定版本,包含...
EasyMock 是一个流行的 Java 开发工具,用于创建和使用模拟对象进行单元测试。它通过提供一个简单易用的 API,使得开发者可以在测试中精确地控制对象的行为,从而确保代码的正确性。在 EasyMock 3.0 版本中,它引入...
本文将深入探讨EasyMock的使用方法及其工作原理,帮助开发者更好地理解和运用这一工具。 ### 1. EasyMock简介 EasyMock 是一个轻量级的模拟框架,它的核心功能是为测试提供假对象(mock objects),这些对象可以...
在这个压缩包中,我们找到了相关的文档和jar包,这些都是理解并使用EasyMock 3.1的关键资源。 首先,让我们深入了解一下EasyMock的基本概念。EasyMock是一个强大的工具,它通过创建代理对象来模拟接口的行为,这些...
总结一下,Easymock3.1和PowerMock1.4.10是Java单元测试的重要工具,它们与JUnit配合使用,可以帮助开发者对各种复杂情况进行精确的测试,提高代码质量。在实际项目中,正确地使用这些库可以大大提升测试的覆盖率和...
EasyMock提供了简单的API来定义对象的行为,比如期望调用的方法和返回值,这对于单元测试特别有用。 在描述中提到的“NULL”可能是因为没有提供具体的信息,但通常这意味着我们将更多地关注提供的资源,即两本书的...
这个"EasyMock单元测试例子"提供了几个示例,帮助我们更好地理解和应用EasyMock。 EasyMock的基本概念: 1. **模拟对象(Mock Object)**:在单元测试中,我们可能不希望依赖实际的外部服务或数据库。模拟对象可以...