自从用了有道笔记之后,好久都没来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 是一个强大的Java模拟框架,它允许开发者在...由于它与EasyMock的主题直接关联性较小,这里不再展开讨论。总的来说,掌握并熟练使用EasyMock能够帮助开发者编写更健壮、易于维护的单元测试,提高软件的质量。
EasyMock 是一个强大的Java模拟框架,它允许开发者在单元测试中创建和控制对象的行为,以模拟复杂的依赖关系。这个框架的出现使得测试更加简洁、独立,可以有效地验证代码的正确性,而无需运行实际的依赖服务或库。...
Easymock是一个流行的Java单元测试框架,它允许开发者创建模拟对象来测试代码。这个框架使得测试更加简单,因为你可以模拟任何复杂的交互和行为,而无需实际运行依赖的组件。在给定的压缩包文件中,包含两个核心的...
EasyMock 3.2 是一个流行的开源Java模拟框架,它为开发者提供了强大的单元测试支持。在Java开发中,单元测试是验证代码独立模块正确性的关键步骤。EasyMock可以帮助程序员模拟对象的行为,使得测试过程更加可控,...
EasyMock主要是为测试提供模拟数据,比如你可以模拟HttpServletRequest。
【EasyMock介绍】 EasyMock是一款强大的Java模拟框架,它允许开发者在进行单元测试时创建和控制对象的行为。这个工具使得测试更加独立,可以隔离被测试代码与其他依赖的系统,从而提高测试的效率和质量。EasyMock的...
EasyMock是一款强大的模拟框架,主要用于Java单元测试。它允许开发者创建和控制对象的模拟行为,以便在测试过程中隔离被测试代码。在这个“EasyMock的安装与部署所需全部文件.zip”压缩包中,包含了在Windows环境下...
EasyMock 简介 EasyMock 是一套用于通过简单的方法对于给定的接口生成 Mock 对象的类库,旨在解决单元测试中的 Mock 对象构建问题。以下是 EasyMock 的详细介绍: 单元测试与 Mock 方法 单元测试是对应用中的某一...
EasyMock是Java编程中的一款强大的模拟框架,它允许开发者在单元测试中创建和控制对象的行为,以便于测试代码的特定部分。本手册主要关注的是EasyMock的2.4版本,这是一个广泛使用的版本,包含了丰富的功能和改进。...
EasyMock 是一个强大的开源工具,专门用于生成模拟对象(Mock Objects),在软件开发特别是单元测试领域,它扮演着至关重要的角色。这个工具的版本为2.5.2,提供了对Java编程语言的支持,使得开发者能够方便地创建和...
Easymock是一款强大的Java单元测试工具,它允许开发者创建模拟对象来协助测试代码。这款框架使得测试变得简单,因为它可以模拟任何接口的行为,而无需实际实现这些接口。下面我们将详细探讨Easymock的基本概念、工作...
EasyMock 是一个强大的开源Java模拟框架,用于进行单元测试。它允许开发者创建模拟对象来代替真实的依赖,以便在测试过程中可以完全控制它们的行为。在这个"EasyMock 使用案例(含lib)"中,我们将会深入探讨如何...
Easymock 3.0 是一个流行的Java模拟框架,用于进行单元测试。它使得开发者能够在测试代码中创建和控制对象的行为,以便于隔离被测试代码并确保其正确性。在单元测试中,Easymock允许我们创建mock对象,这些对象模仿...
《深入理解easymock.jar:Java单元测试的利器》 在软件开发中,单元测试是一种重要的质量保证手段,它允许开发者验证代码的各个部分独立工作是否正常。Easymock是一个流行的Java模拟框架,其核心是easymock.jar库,...
它允许开发者独立地测试代码的各个小部分,确保每个模块的功能正确无误。EasyMock是一款流行的Java库,专门用于创建和控制模拟对象,使得单元测试更加简便。这个"EasyMock单元测试例子"提供了几个示例,帮助我们更好...
Easymock是一款强大的Java单元测试工具,它允许开发者创建模拟对象来测试代码。这个压缩包包含的是Easymock的3.2版本,其中包括文档、源码和示例,对于学习和理解Easymock的工作原理以及如何在实际项目中使用它非常...
而JMock和EasyMock则是两种广泛使用的Java单元测试框架,它们允许开发者模拟对象的行为和交互,以便于测试复杂的系统。本资源包含JMock 2.5.1和EasyMock 3.0的库文件,使得开发者在进行单元测试时无需再四处寻找相关...
EasyMock 是一套通过简单的方法对于指定的接口或类生成 Mock 对象的类库,它能利用对接口或类的模拟来辅助单元测试。本文将对 EasyMock 的功能和原理进行介绍,并通过示例来说明如何使用 EasyMock 进行单元测试。 ...