`
sxw7362693
  • 浏览: 60682 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

EasyMock的理解和使用

阅读更多

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介绍和使用

    通过深入理解和熟练运用EasyMock,开发者可以在单元测试中更有效地控制和验证代码行为,提升软件质量。在实际项目中,结合IDE中的测试工具和自动化测试框架,如JUnit,EasyMock的效能会得到更大发挥。文件"EasyMock ...

    EasyMock与Mockito 使用

    EasyMock和Mockito是两个广泛使用的Java模拟框架,它们可以帮助开发者在隔离环境中测试代码,避免了依赖其他组件或服务的复杂性。本文将详细介绍这两个工具的使用方法、原理和差异。 **EasyMock** EasyMock是一个...

    easymock2.4+EasyMock使用简明手册.pdf

    EasyMock是Java编程中的一款强大的模拟框架,它允许开发者在单元测试中创建和控制...通过阅读《EasyMock使用简明手册》和解压后的easymock2.4.zip文件,开发者可以深入理解并掌握如何有效地使用EasyMock进行单元测试。

    easymock资料和源代码实例

    在压缩包中的"easymock"文件中,可能包含了Easymock的使用教程、源代码示例和相关文档,这些都是深入理解和学习Easymock的好资源。通过阅读这些材料,你可以更好地掌握如何在实际项目中运用Easymock进行单元测试,...

    jmock2.5.1和easymock3.0

    而JMock和EasyMock则是两种广泛使用的Java单元测试框架,它们允许开发者模拟对象的行为和交互,以便于测试复杂的系统。本资源包含JMock 2.5.1和EasyMock 3.0的库文件,使得开发者在进行单元测试时无需再四处寻找相关...

    easyMock

    EasyMock 是一个强大的Java模拟框架,它允许开发者在单元测试中...了解和掌握EasyMock的使用,能够提升测试的质量,降低软件维护的成本。在实际开发中,应根据项目需求选择合适的模拟框架,确保测试的有效性和效率。

    Junit+EasyMock单元测试使用资料以及案例分析

    Junit和EasyMock是Java领域中广泛使用的两个工具,它们协同工作,提供了强大的单元测试能力。本文将深入探讨这两个工具的使用,并通过案例分析帮助你更好地理解和应用它们。 **Junit简介** JUnit是Java编程语言中最...

    easymock-3.2.zip

    1. **API文档**:这是EasyMock的接口文档,详细描述了各个类和方法的使用方法、参数和返回值,是开发者理解和学习EasyMock的关键资料。通过阅读API文档,你可以了解如何创建模拟对象,设置期望值以及验证行为。 2. ...

    EasyMock的安装与部署所需全部文件.zip

    同时,熟悉Java编程和单元测试的基本概念对于理解和使用EasyMock非常重要。 总的来说,这个压缩包提供了一个完整的环境,让你可以在Windows上搭建并运行EasyMock。通过深入学习每个组件的工作原理和EasyMock的使用...

    easymock3.2 (文档+源码+例子)

    这个压缩包包含的是Easymock的3.2版本,其中包括文档、源码和示例,对于学习和理解Easymock的工作原理以及如何在实际项目中使用它非常有帮助。 Easymock的主要功能是模拟(mock)Java接口的行为,使得测试可以独立...

    转:EasyMock 单元测试

    这篇文档将深入探讨 EasyMock 的使用方法和原理,以便更好地理解和应用这一工具。 首先,让我们理解 EasyMock 的核心概念。EasyMock 允许开发者创建“mock”对象,这些对象在测试时代替实际依赖,以便我们可以控制...

    PowerMock\EasyMock的相关资料和文档

    在使用PowerMock和EasyMock时,需要注意以下几点: 1. **适度模拟**:虽然模拟可以减少测试的复杂性,但过度模拟可能导致测试不准确,无法反映出真实环境的行为。 2. **隔离测试**:确保每个测试都是独立的,不会受...

    easyMock2.2.doc

    EasyMock2.2版本相较于早期版本(如EasyMock1.x),在使用方式和功能上进行了显著的改进,使其更加灵活和易于使用。 #### 易于理解的示例:`ClassUnderTest`测试 为了深入理解EasyMock2.2的使用方法,我们将通过一...

    easymock.jar包

    easymock.jar文件是Easymock框架的核心库,包含了所有必要的类和接口,使得开发人员可以直接在项目中引入并使用Easymock的功能。在给定的压缩包中,我们看到的是easymock-3.3版本,这是Easymock的一个稳定版本,包含...

    Learning EasyMock3.0 By Official Example

    EasyMock 是一个流行的 Java 开发工具,用于创建和使用模拟对象进行单元测试。它通过提供一个简单易用的 API,使得开发者可以在测试中精确地控制对象的行为,从而确保代码的正确性。在 EasyMock 3.0 版本中,它引入...

    EasyMock 使用方法与原理剖析

    本文将深入探讨EasyMock的使用方法及其工作原理,帮助开发者更好地理解和运用这一工具。 ### 1. EasyMock简介 EasyMock 是一个轻量级的模拟框架,它的核心功能是为测试提供假对象(mock objects),这些对象可以...

    easymock-3.1

    在这个压缩包中,我们找到了相关的文档和jar包,这些都是理解并使用EasyMock 3.1的关键资源。 首先,让我们深入了解一下EasyMock的基本概念。EasyMock是一个强大的工具,它通过创建代理对象来模拟接口的行为,这些...

    easymock3.1 jar包和powermock1.4.10 jar包(以及附带junit jar包)

    总结一下,Easymock3.1和PowerMock1.4.10是Java单元测试的重要工具,它们与JUnit配合使用,可以帮助开发者对各种复杂情况进行精确的测试,提高代码质量。在实际项目中,正确地使用这些库可以大大提升测试的覆盖率和...

    easymock

    EasyMock提供了简单的API来定义对象的行为,比如期望调用的方法和返回值,这对于单元测试特别有用。 在描述中提到的“NULL”可能是因为没有提供具体的信息,但通常这意味着我们将更多地关注提供的资源,即两本书的...

    EasyMock单元测试例子

    这个"EasyMock单元测试例子"提供了几个示例,帮助我们更好地理解和应用EasyMock。 EasyMock的基本概念: 1. **模拟对象(Mock Object)**:在单元测试中,我们可能不希望依赖实际的外部服务或数据库。模拟对象可以...

Global site tag (gtag.js) - Google Analytics