【项目地址】
https://github.com/easymock/easymock
【简介】
EasyMock is a Java library that provides an easy way to use Mock Objects in unit testing.
You can find the website and user documentation at http://easymock.org.
【我的目的】
测试一个以HttpServletRequest对象为参数的方法,测试过程中还发现牵涉到HttpSession
【代码】
import org.easymock.EasyMock; import org.junit.Before; import org.junit.Test;
......
// Step 1 - 创建要mock的对象 HttpServletRequest req = createMock(HttpServletRequest.class); HttpSession session = createMock(HttpSession.class); // 对于将被调用的方法,使用expect指定返回值 expect(session.getAttribute("USER_INFO")).andReturn(null).times(1, 2); expect(req.getSession()).andReturn(session).times(1, 2); expect(req.getHeader("iv-user")).andReturn("testUser1").times(1, 2); Vector<String> groups = new Vector<String>(); groups.add("group1"); groups.add("group2"); groups.add("staff in (p)22"); Enumeration<String> emun = groups.elements(); expect(req.getHeaders("iv-groups")).andReturn(emun).times(1, 2); //如果mock对象的方法返回void,不能使用expect方法,而应该使用如下模式:先调用void方法,再调用expectLastCall() session.setAttribute("USER_INFO", null); EasyMock.expectLastCall(); // 准备模拟对象data replay(session); replay(req);
......
try { //Mock对象完毕,开始测试.... List userInfo = BizUtils.getUserInfo(req); assertTrue(userInfo!=null && userInfo.size()==2);
【简单总结】
由于时间关系没有做太多研究,要注意的地方就是:
- 本来只需要模拟HttpServletRequest,但被测试方法在执行过程中调用了request.getSession(),本来可以使用expect来处理该方法,但session我也是没办法自己随意创建的,也不能直接置为null,所以干脆也mock一个HttpSession;
- 对于返回为void的方法,处理方式较为特别
相关推荐
我在学习easymock的过程中做的技术笔记和摘抄的技术文档,欢迎分享
easyMock
easyMock2.2
EasyMock主要是为测试提供模拟数据,比如你可以模拟HttpServletRequest。
EasyMock 是一套通过简单的方法对于指定的接口或类生成 Mock 对象的类库,它能利用对接口或类的模拟来辅助单元测试。本文将对 EasyMock 的功能和原理进行介绍,并通过示例来说明如何使用 EasyMock 进行单元测试。 ...
EasyMock 是一套通过简单的方法对于指定的接口或类生成 Mock 对象的类库,它能利用对接口或类的模拟来辅助单元测试。 Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较...
NULL 博文链接:https://bruceliu02.iteye.com/blog/1775446
还在为找不到jar文件烦心吗,不用了到我空间来有你想要的,持续更新。。。 easymock.jar,easymockclassextension.jar
easymock2 EasyMock使用简明手册
EasyMock 的文档还有简单实例 还有需要的jar包
EasyMock 是一套通过简单的方法对于指定的接口或类生成 Mock 对象的类库,它能利用对接口或类的模拟来辅助单元测试。 Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较复杂...
easymock 的使用方法简介easymock 的使用方法简介
还在为EasyMock使用时出异常而烦恼? 本压缩包包含除了Junit4之外easyMock3.1所用到的所有相关jar包,junit4可自己导入eclipse自带的即可 本压缩包包括: asm.jar cglib.jar objenesis.jar等 其中asm与cglib已兼容,放心...
easymock需要用到的包,没有它不行,easymock-3.1.jar
EasyMock 是一套用于通过简单的方法对于给定的接口生成 Mock 对象的类库。它提供对接口的模拟,能够通过录制、回放、检查三步来完成大体的测试过程,可以验证方法的调用种类、次数、顺序,可以令 Mock 对象返回指定...
EasyMock单元测试的扩展; EasyMock简介(抽象类接口做测试); EasyMock来进行测试; EasyMock如何打桩; EasyMock实践指南; EasyMock使用技巧; EasyMock使用简明手册; EasyMock使用说明; EasyMock使用手记; 用Mock ...
easymockclassextension-3.0.jar org.easymock.classextension.EasyMock.
easymock servlet 单元测试
easymock.jar包
EasyMock使用教程,快来看看你还有什么秘密没有发现吧!