搜索
您的当前位置:首页正文

EasyMock指南

来源:品趣旅游知识分享网


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); }

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(); } */

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()); }

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()); }

public void testAddMachine() throws Exception {

UploadServer server = createUploadServer();

mockUploadMachineDao.addMachine(server);

EasyMock.replay(mockUploadMachineDao);

uploadMachineService.addMachine(server);

EasyMock.verify(mockUploadMachineDao); }

public void testDeleteMachines() throws Exception {

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

mockUploadMachineJDBCDao.deleteMachines(serverids);

EasyMock.replay(mockUploadMachineJDBCDao);

uploadMachineService.deleteMachines(serverids);

EasyMock.verify(mockUploadMachineJDBCDao); }

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); }

private UploadServer createUploadServer() {

UploadServer us = new UploadServer(new Integer(1)); Set set = new HashSet(); us.setDiskSet(set); return us; } }

因篇幅问题不能全部显示,请点此查看更多更全内容

Top