`
xitong
  • 浏览: 6202715 次
文章分类
社区版块
存档分类
最新评论

EasyMock实践指南

 
阅读更多

EasyMock是个mock框架,用于动态产生mock对象,mock对象主要是用来模拟真实环境中的对象,原理上你应该为每个被依赖的接口准备mock对象,但那样实在太麻烦,无端的会产生很多mock类,所以EasyMock派上用场了!注意EasyMock2.0不能为非接口产生mock对象

EashMock的使用模式

1)记录

mockobj.someMethod();

2) 如果该方法有返回值,那么必须使用

EasyMock.expectLastCall().andReturn(xxxx);(不一定非得用这句话,但一定要有返回 值) xxx为被mock对象的someMethod()方法的期望返回值

3)回放(用于激活mock对象)

EasyMock.replay(mockobj);

实例如下:

package moxtv.central.service.impl;

import java.util.ArrayList;

import java.util.HashSet;

import java.util.List;

import java.util.Map;

import java.util.Set;

import junit.framework.TestCase;

import moxtv.central.dao.UploadMachineDao;

import moxtv.central.dao.UploadMachineJDBCDao;

import moxtv.central.po.UploadServer;

import org.easymock.EasyMock;

/**

* 上传机管理测试集.

*

* @author weip

* @time 2006-3-30 10:06:09

*

*/

public final class UploadMachineServiceTest extends TestCase {

/**

* 要测试的类.

*/

private UploadMachineServiceImpl uploadMachineService;

/**

* 测试对象依赖的对象

*/

private UploadMachineDao mockUploadMachineDao;

/**

* 测试对象依赖的对象

*/

private UploadMachineJDBCDao mockUploadMachineJDBCDao;

/**

*

* @param name

*

String

*/

public UploadMachineServiceTest(final String name) {

super(name);

}

/**

*

* @author weip

* @time 2006-3-30 10:10:18 (non-Javadoc)

* @see junit.framework.TestCase#setUp()

* @throws Exception

*

a

*

*/

protected void setUp() throws Exception {

super.setUp();

mockUploadMachineDao = (UploadMachineDao) EasyMock

.createMock(UploadMachineDao.class);

mockUploadMachineJDBCDao = (UploadMachineJDBCDao) EasyMock

.createMock(UploadMachineJDBCDao.class);

uploadMachineService = new UploadMachineServiceImpl();

uploadMachineService.setUploadMachineDao(mockUploadMachineDao);

uploadMachineService.setUploadMachineJDBCDao(mockUploadMachineJDBCDao);

}

/*

* protected void tearDown() throws Exception { super.tearDown(); }

*/

/**

* 测试登陆上传机管理首页.

*

* @author weip

* @throws Exception

*

a

* @time 2006-3-30 10:20:14

*/

public void testLoadMainPage() throws Exception {

UploadMachineVO vo = new UploadMachineVO ();

mockUploadMachineDao.query(vo );

EasyMock.expectLastCall().andReturn(new ArrayList());

mockUploadMachineDao.getTotalMachineCount();

EasyMock.expectLastCall().andReturn(new Integer(6));

EasyMock.replay(mockUploadMachineDao);

Map map = uploadMachineService.loadMainPage(vo );

assertNotNull(map);

assertNotNull(map.get("list"));

List list = (List) map.get("list");

assertEquals(0, list.size());

Integer sum = (Integer) map.get("sum");

assertNotNull(sum);

assertEquals(6, sum.intValue());

}

/**

* 测试获取上传机详情.

*

* @author weip

* @throws Exception

*

a

* @time 2006-3-30 11:14:33

*/

public void testGetMachine() throws Exception {

int serverId = 1;

mockUploadMachineDao.getMachine(serverId);

UploadServer us = createUploadServer();

EasyMock.expectLastCall().andReturn(us);

EasyMock.replay(mockUploadMachineDao);

UploadServer machine = uploadMachineService.getMachine(serverId);

assertEquals(1, machine.getId().intValue());

}

/**

* 测试添加上传机.

*

* @author weip

* @throws Exception

*

a

* @time 2006-3-30 10:09:42

*/

public void testAddMachine() throws Exception {

UploadServer server = createUploadServer();

mockUploadMachineDao.addMachine(server);

EasyMock.replay(mockUploadMachineDao);

uploadMachineService.addMachine(server);

EasyMock.verify(mockUploadMachineDao);

}

/**

* 测试删除上传机.

*

* @author weip

* @throws Exception

*

a

* @time 2006-3-30 10:55:28

*

*/

public void testDeleteMachines() throws Exception {

int[] serverids = new int[] {1 };

mockUploadMachineJDBCDao.deleteMachines(serverids);

EasyMock.replay(mockUploadMachineJDBCDao);

uploadMachineService.deleteMachines(serverids);

EasyMock.verify(mockUploadMachineJDBCDao);

}

/**

* 测试修改上传机.

*

* @author weip

* @throws Exception

*

a

* @time 2006-3-30 11:10:48

*/

public void testUpdateMachine() throws Exception {

mockUploadMachineDao.getMachine(1);

UploadServer destus = createUploadServer();

EasyMock.expectLastCall().andReturn(destus);

EasyMock.replay(mockUploadMachineDao);

UploadServer srcus = createUploadServer();

uploadMachineService.updateMachine(srcus);

EasyMock.verify(mockUploadMachineDao);

}

/**

* @author weip

* @time 2006-4-7 9:12:09

* @return UploadServer

*/

private UploadServer createUploadServer() {

UploadServer us = new UploadServer(new Integer(1));

Set set = new HashSet();

us.setDiskSet(set);

return us;

}

}

分享到:
评论

相关推荐

    EasyMock 使用方法与原理剖析

    EasyMock单元测试的扩展; EasyMock简介(抽象类接口做测试); EasyMock来进行测试;...EasyMock实践指南; EasyMock使用技巧; EasyMock使用简明手册; EasyMock使用说明; EasyMock使用手记; 用Mock object进行隔离测试;

    Easy Mock 详解

    EasyMock单元测试的扩展; EasyMock简介(抽象类接口做测试); EasyMock来进行测试;...EasyMock实践指南; EasyMock使用技巧; EasyMock使用简明手册; EasyMock使用说明; EasyMock使用手记; 用Mock object进行隔离测试;

    easyMock

    easyMock

    easymock-3.2.jar

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

    easyMock2.2.doc

    easyMock2.2

    easymock.jar,easymockclassextension.jar

    还在为找不到jar文件烦心吗,不用了到我空间来有你想要的,持续更新。。。 easymock.jar,easymockclassextension.jar

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

    easymock2 EasyMock使用简明手册

    easymock的使用,含demo

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

    EasyMock 3.1相关jar(所有)

    还在为EasyMock使用时出异常而烦恼? 本压缩包包含除了Junit4之外easyMock3.1所用到的所有相关jar包,junit4可自己导入eclipse自带的即可 本压缩包包括: asm.jar cglib.jar objenesis.jar等 其中asm与cglib已兼容,放心...

    模拟测试辅助工具easyMock.zip

    EasyMock 是一套通过简单的方法对于指定的接口或类生成 Mock 对象的类库,它能利用对接口或类的模拟来辅助单元测试。 Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较...

    easymock 的使用方法简介

    easymock 的使用方法简介easymock 的使用方法简介

    EasyMock

    NULL 博文链接:https://bruceliu02.iteye.com/blog/1775446

    easymock-3.1.jar

    easymock需要用到的包,没有它不行,easymock-3.1.jar

    easymock-4.2.jar

    EasyMock 是一套通过简单的方法对于指定的接口或类生成 Mock 对象的类库,它能利用对接口或类的模拟来辅助单元测试。 Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较复杂...

    easymockclassextension-3.0.jar

    easymockclassextension-3.0.jar org.easymock.classextension.EasyMock.

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

    windows环境部署easymock,有用到的全部文件和安装说明,包换node.js,redis,mongdb,easymock源码

    easymock-4.0-bundle

    EasyMock 是一套用于通过简单的方法对于给定的接口生成 Mock 对象的类库。它提供对接口的模拟,能够通过录制、回放、检查三步来完成大体的测试过程,可以验证方法的调用种类、次数、顺序,可以令 Mock 对象返回指定...

    easymock-request.getParamsNames

    easymock servlet 单元测试

    easymock.jar包

    easymock.jar包

    EasyMock 实例

    EasyMock 的文档还有简单实例 还有需要的jar包

Global site tag (gtag.js) - Google Analytics