`
luck_dream
  • 浏览: 21765 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

EasyMock小尝试

    博客分类:
  • Java
 
阅读更多

       自从用了有道笔记之后,好久都没来iteye了。不过最近打算继续把ITEYE捡起来。

         

       言归正传,开始我们今天的EasyMock。在做UT时,很多时候,由于要依赖其他各种的对象,导致我们的测试非常的不方便,问题在于,我们真的需要将所依赖的所有对象都实例化出来吗?答案当然是  不,利器就在于我们的EasyMock。Mock的意思是模仿,仿造,所以,EasyMock的作用就是将你需要的对象给造一个假的出来。而且很easy哦。

       通过EasyMock,我们可以为指定的接口动态的创建Mock对象,并未对象设置期望的行为和输出,从而完成单元测试。所以过程可以分为以下几个步骤:

  • 使用 EasyMock 生成 Mock 对象;
  • 设定 Mock 对象的预期行为和输出;
  • 将 Mock 对象切换到 Replay 状态;
  • 调用 Mock 对象方法进行单元测试;
  • 对 Mock 对象的行为进行验证。

下面看个简单的例子:

MockDemo.java

/**
 * 需要被mock的接口
 */
public class MockDemo {
	public int getResult();
}

 MockDemoInvoker.java

/**
 * Mock对象的调用者,提供一个print方法,将调用MockDemo的getResult方法,并将其值返回。
 *
 */
public class MockDemoInvoker {
	private MockDemo mockDemo = null;

	public MockDemo getMockDemo() {
		return mockDemo;
	}

	public void setMockDemo(MockDemo mockDemo) {
		this.mockDemo = mockDemo;
	}

	public MockDemoInvoker(MockDemo mockDemo) {
		super();
		this.mockDemo = mockDemo;
	}

	public int print() {
		int result = mockDemo.getResult();
		System.out.println(result);
		return result;
	}
}

 MockDemoTest.java

public class MockDemoTest {
	private MockDemo mockDemo = null;
	private MockDemoInvoker mockDemoInvoker = null;
	@Before
	public void init(){
		// Step 1: create mock object
		mockDemo = EasyMock.createMock(MockDemo.class);
		
	}
	@Test
	public void doMockDemo(){
		// Step 2: set expect behavior and return value
		EasyMock.expect(mockDemo.getResult()).andReturn(813);
		
		// Step 3: set mock object status to "Replay"
		EasyMock.replay(mockDemo);
		
		// Step 4: invoke mock object
		mockDemoInvoker = new MockDemoInvoker(mockDemo);
		int result  = mockDemoInvoker.print();
		
		// Step 5: verify result
		Assert.assertEquals(result, 813);
	}
}

 在测试方法中,我写出了整个easymock的5个步骤,非常的清晰,easy。我们并不需要关心MockDemo的getResult是如何实现的,而只需要关心它的期望结果,比如这里我们期望它返回813。这样,在做单元测试的时候,就将我们调用者的业务跟接口的实现解耦了。

 

分享到:
评论

相关推荐

    EasyMock

    EasyMock 是一个强大的Java模拟框架,它允许开发者在...由于它与EasyMock的主题直接关联性较小,这里不再展开讨论。总的来说,掌握并熟练使用EasyMock能够帮助开发者编写更健壮、易于维护的单元测试,提高软件的质量。

    easyMock

    EasyMock 是一个强大的Java模拟框架,它允许开发者在单元测试中创建和控制对象的行为,以模拟复杂的依赖关系。这个框架的出现使得测试更加简洁、独立,可以有效地验证代码的正确性,而无需运行实际的依赖服务或库。...

    easymock.jar,easymockclassextension.jar

    Easymock是一个流行的Java单元测试框架,它允许开发者创建模拟对象来测试代码。这个框架使得测试更加简单,因为你可以模拟任何复杂的交互和行为,而无需实际运行依赖的组件。在给定的压缩包文件中,包含两个核心的...

    easymock-3.2.zip

    EasyMock 3.2 是一个流行的开源Java模拟框架,它为开发者提供了强大的单元测试支持。在Java开发中,单元测试是验证代码独立模块正确性的关键步骤。EasyMock可以帮助程序员模拟对象的行为,使得测试过程更加可控,...

    easymock-3.2.jar

    EasyMock主要是为测试提供模拟数据,比如你可以模拟HttpServletRequest。

    EasyMock介绍和使用

    【EasyMock介绍】 EasyMock是一款强大的Java模拟框架,它允许开发者在进行单元测试时创建和控制对象的行为。这个工具使得测试更加独立,可以隔离被测试代码与其他依赖的系统,从而提高测试的效率和质量。EasyMock的...

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

    EasyMock是一款强大的模拟框架,主要用于Java单元测试。它允许开发者创建和控制对象的模拟行为,以便在测试过程中隔离被测试代码。在这个“EasyMock的安装与部署所需全部文件.zip”压缩包中,包含了在Windows环境下...

    EasyMock 简介

    EasyMock 简介 EasyMock 是一套用于通过简单的方法对于给定的接口生成 Mock 对象的类库,旨在解决单元测试中的 Mock 对象构建问题。以下是 EasyMock 的详细介绍: 单元测试与 Mock 方法 单元测试是对应用中的某一...

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

    EasyMock是Java编程中的一款强大的模拟框架,它允许开发者在单元测试中创建和控制对象的行为,以便于测试代码的特定部分。本手册主要关注的是EasyMock的2.4版本,这是一个广泛使用的版本,包含了丰富的功能和改进。...

    easymock-2.5.2工具 下载

    EasyMock 是一个强大的开源工具,专门用于生成模拟对象(Mock Objects),在软件开发特别是单元测试领域,它扮演着至关重要的角色。这个工具的版本为2.5.2,提供了对Java编程语言的支持,使得开发者能够方便地创建和...

    easymock资料和源代码实例

    Easymock是一款强大的Java单元测试工具,它允许开发者创建模拟对象来协助测试代码。这款框架使得测试变得简单,因为它可以模拟任何接口的行为,而无需实际实现这些接口。下面我们将详细探讨Easymock的基本概念、工作...

    EasyMock 使用案例(含lib)

    EasyMock 是一个强大的开源Java模拟框架,用于进行单元测试。它允许开发者创建模拟对象来代替真实的依赖,以便在测试过程中可以完全控制它们的行为。在这个"EasyMock 使用案例(含lib)"中,我们将会深入探讨如何...

    easymock 3.0

    Easymock 3.0 是一个流行的Java模拟框架,用于进行单元测试。它使得开发者能够在测试代码中创建和控制对象的行为,以便于隔离被测试代码并确保其正确性。在单元测试中,Easymock允许我们创建mock对象,这些对象模仿...

    easymock.jar包

    《深入理解easymock.jar:Java单元测试的利器》 在软件开发中,单元测试是一种重要的质量保证手段,它允许开发者验证代码的各个部分独立工作是否正常。Easymock是一个流行的Java模拟框架,其核心是easymock.jar库,...

    EasyMock单元测试例子

    它允许开发者独立地测试代码的各个小部分,确保每个模块的功能正确无误。EasyMock是一款流行的Java库,专门用于创建和控制模拟对象,使得单元测试更加简便。这个"EasyMock单元测试例子"提供了几个示例,帮助我们更好...

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

    Easymock是一款强大的Java单元测试工具,它允许开发者创建模拟对象来测试代码。这个压缩包包含的是Easymock的3.2版本,其中包括文档、源码和示例,对于学习和理解Easymock的工作原理以及如何在实际项目中使用它非常...

    jmock2.5.1和easymock3.0

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

    easymock的使用,含demo

    EasyMock 是一套通过简单的方法对于指定的接口或类生成 Mock 对象的类库,它能利用对接口或类的模拟来辅助单元测试。本文将对 EasyMock 的功能和原理进行介绍,并通过示例来说明如何使用 EasyMock 进行单元测试。 ...

Global site tag (gtag.js) - Google Analytics