刚使用easy mock 其中有一个次数的方法设置,
代码如下:
public void testAddAndChangeDocument()
{
mock.documentAdded("Document");
mock.documentChanged("Document");
expectLastCall().times(3);
replay(mock);
classUnderTest.addDocument("Document", new byte[0]);
classUnderTest.addDocument("Document", new byte[0]);
classUnderTest.addDocument("Document", new byte[0]);
classUnderTest.addDocument("Document", new byte[0]);
verify(mock);
}
不太明白设置expectLastCall().times(3); 有什么用,请高手指点 2、在spring+hibernate中测试service有什么意义呢?就是为了看看他用到的dao是否执行了对应的方法吗?3、
我就是想不明白,我看了easy mock的一些资料,测试service大致分如下步骤:
1、构造一个正确的结果对象或变量。
2、调用一个dao接口,执行一个方法(假设接口还没有被实现,只是模拟执行一下方法)
3、返回1中构造的正确结果,然后运行service中的对应方法(方法中调用2中提到的dao的方法)
4、最后,进行断言判断,这有什么意义啊!返回的对象肯定是正确的,有什么好判断的啊!4、我这里有一个service中的方法getGroupOfUserList,如果对这个方法进行测试的话,应该如何使用easymock。public UserPeer getSingleUser(String loginName)
{ UserPeer user = (UserPeer) userDao.find(UserPeer.class, loginName); return user;
}public Integer[] getGroupOfUserList(String loginName)
{
UserPeer user = getSingleUser(loginName); Set groupUserSet = user.getGroupUserSet(); List groupUser = new ArrayList(); Iterator it = groupUserSet.iterator(); while (it.hasNext())
{
GroupUserPeer gup = (GroupUserPeer) it.next(); GroupUserKey key = gup.getId(); GroupPeer group = key.getGroups(); groupUser.add(group);
} Integer[] groupIds = new Integer[groupUser.size()]; for (int i = 0; i < groupUser.size(); i++)
{
groupIds[i] = ((GroupPeer) groupUser.get(i)).getGroupId();
} return groupIds;
}
代码如下:
public void testAddAndChangeDocument()
{
mock.documentAdded("Document");
mock.documentChanged("Document");
expectLastCall().times(3);
replay(mock);
classUnderTest.addDocument("Document", new byte[0]);
classUnderTest.addDocument("Document", new byte[0]);
classUnderTest.addDocument("Document", new byte[0]);
classUnderTest.addDocument("Document", new byte[0]);
verify(mock);
}
不太明白设置expectLastCall().times(3); 有什么用,请高手指点 2、在spring+hibernate中测试service有什么意义呢?就是为了看看他用到的dao是否执行了对应的方法吗?3、
我就是想不明白,我看了easy mock的一些资料,测试service大致分如下步骤:
1、构造一个正确的结果对象或变量。
2、调用一个dao接口,执行一个方法(假设接口还没有被实现,只是模拟执行一下方法)
3、返回1中构造的正确结果,然后运行service中的对应方法(方法中调用2中提到的dao的方法)
4、最后,进行断言判断,这有什么意义啊!返回的对象肯定是正确的,有什么好判断的啊!4、我这里有一个service中的方法getGroupOfUserList,如果对这个方法进行测试的话,应该如何使用easymock。public UserPeer getSingleUser(String loginName)
{ UserPeer user = (UserPeer) userDao.find(UserPeer.class, loginName); return user;
}public Integer[] getGroupOfUserList(String loginName)
{
UserPeer user = getSingleUser(loginName); Set groupUserSet = user.getGroupUserSet(); List groupUser = new ArrayList(); Iterator it = groupUserSet.iterator(); while (it.hasNext())
{
GroupUserPeer gup = (GroupUserPeer) it.next(); GroupUserKey key = gup.getId(); GroupPeer group = key.getGroups(); groupUser.add(group);
} Integer[] groupIds = new Integer[groupUser.size()]; for (int i = 0; i < groupUser.size(); i++)
{
groupIds[i] = ((GroupPeer) groupUser.get(i)).getGroupId();
} return groupIds;
}
解决方案 »
- 很多简单问题吖。。。。。急求解决。高分求解
- 求struts中怎样将一个action转发到另一个action的具体方法,急~~~~~~~~~~~~~~~~
- 请指示——学struts2学习前 必备的知识
- Java编程中的Maven怎么制作war文件
- 怎么获取javascript表单参数?
- 一个跟踪请求、会话的listener!(请高手帮忙)
- Eclipse怎样导入已存在的应用?
- 怎样用循环取到表中的字段?,
- linux下编译JSP出错,关键词JavaMail,Tomcat
- 类型转换,INT 转变为 STRING,在线等待,解决马上给分。
- 用spring+struc+hibernate时出现java.lang.ClassNotFoundException: org.springframework.web.struts.ContextLoaderPlugIn错误.
- 关于log4j如何记录访问日志??
而仅仅是测试DAO。而其实大部分的应用都没有什么业务逻辑,一般的crud的操作测试DAO即可
mock.documentChanged("document1");
mock.documentChanged("document2");
mock.documentChanged("document3");
那么是不是就不能有expectLastCall().times()这个设置了?第二:我现在虽然也写了一些service测试,虽然每次运行能通过,但是总感觉不太对,比如有些地方就不明白,如果被测试的代码中有什么for循环或者if-else的话,那么我的测试代码中应该怎么写啊。第三:在测试一个service方法时,这个service方法里调用了对应的dao的方法,当然还有其他的逻辑,我发现,我每次不处理这个dao,也没有出错:例如下面
public void testRemoveParamList()
{
ReportParamPeer rpp=new ReportParamPeer();
rpp.setParamId(1);
ReportParamPeer rpp1=new ReportParamPeer();
rpp1.setParamId(2);
List rppList=new ArrayList();
rppList.add(rpp);
rppList.add(rpp1);
TaskPeer task=new TaskPeer();
task.setTaskId(1);
task.setSysParam("1");
TaskPeer task2=new TaskPeer();
task2.setTaskId(2);
task2.setSysParam("2");
List taskList=new ArrayList();
taskList.add(task);
taskList.add(task2);
/*mockSchedulerDao.updateObject(task);
mockSchedulerDao.updateObject(task2);
EasyMock.replay(mockSchedulerDao);
schedulerService.updateTask(task);
schedulerService.updateTask(task2);
EasyMock.verify(mockSchedulerDao);
mockUserDao.remove(rpp);
mockUserDao.remove(rpp1);
EasyMock.replay(mockUserDao);*/
userService.removeParamList(rppList,taskList,schedulerService);
//EasyMock.verify(mockUserDao);
}
这是我写的一个测试,我把dao都屏蔽了,仍然没错,我一直以为会抛出预期方法未执行的异常,这是什么道理?请赐教