`

EasyMock简单上手笔记

阅读更多

【项目地址】

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

 

【简单总结】

由于时间关系没有做太多研究,要注意的地方就是:

  1. 本来只需要模拟HttpServletRequest,但被测试方法在执行过程中调用了request.getSession(),本来可以使用expect来处理该方法,但session我也是没办法自己随意创建的,也不能直接置为null,所以干脆也mock一个HttpSession;
  2. 对于返回为void的方法,处理方式较为特别

 

分享到:
评论

相关推荐

    Easymock学习笔记

    我在学习easymock的过程中做的技术笔记和摘抄的技术文档,欢迎分享

    easyMock

    easyMock

    easyMock2.2.doc

    easyMock2.2

    easymock-3.2.jar

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

    easymock的使用,含demo

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

    模拟测试辅助工具easyMock.zip

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

    EasyMock

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

    easymock.jar,easymockclassextension.jar

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

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

    easymock2 EasyMock使用简明手册

    EasyMock 实例

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

    easymock-4.2.jar

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

    easymock 的使用方法简介

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

    EasyMock 3.1相关jar(所有)

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

    easymock-3.1.jar

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

    easymock-4.0-bundle

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

    EasyMock 使用方法与原理剖析

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

    easymockclassextension-3.0.jar

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

    easymock-request.getParamsNames

    easymock servlet 单元测试

    easymock.jar包

    easymock.jar包

    EasyMock 教程

    EasyMock使用教程,快来看看你还有什么秘密没有发现吧!

Global site tag (gtag.js) - Google Analytics