博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用EasyMock对Servlet进行简单的测试
阅读量:6414 次
发布时间:2019-06-23

本文共 2827 字,大约阅读时间需要 9 分钟。

这是一个WebProject,但不需配置web.xml,因为EasyMock用不上它

 

首先是用到的实体类User.java

 

package com.jadyer.model;public class User {	private int id;	private String username;	private String password;		/*-- 三个属性的setter和getter略 --*/		public User(){}		public User(int id, String username, String password) {		this.id = id;		this.username = username;		this.password = password;	}}

下面是待测试的LoginServlet.java

 

 

package com.jadyer.servlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import com.jadyer.model.User;public class LoginServlet extends HttpServlet {	private static final long serialVersionUID = 6655227641354075528L;	public boolean isLogin(HttpServletRequest request){		HttpSession session = request.getSession();		if(null == session){			return false;		}		User user = (User)session.getAttribute("loginUser");		if(null == user){			return false;		}		return true;	}}

最后是使用EasyMock编写的测试用例LoginServletTest.java

 

 

package com.jadyer.servlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.easymock.EasyMock;import org.junit.Assert;import org.junit.Before;import org.junit.Test;import com.jadyer.model.User;/** * EasyMock框架在使用时只需要一个easymock-3.1.jar  * 下载地址为http://sourceforge.net/projects/easymock/files/ * @create Jul 9, 2013 2:28:41 PM * @author 玄玉      */public class LoginServletTest {	private LoginServlet servlet;	private HttpServletRequest request;	private HttpSession session;		@Before	public void init(){		servlet = new LoginServlet();		request = EasyMock.createStrictMock(HttpServletRequest.class);		session = EasyMock.createStrictMock(HttpSession.class);	}		/**	 * 测试登录失败的情况(session为空)	 */	@Test	public void testIsLoginFailSessionIsNull(){		//声明HttpServletRequest获取到的HttpSession是空的		EasyMock.expect(request.getSession()).andReturn(null);		EasyMock.replay(request, session);		//验证HttpSession为空时登录应该是失败的		Assert.assertFalse(servlet.isLogin(request));		EasyMock.verify(request, session);	}		/**	 * 测试登录失败的情况(session中无用户)	 */	@Test	public void testIsLoginFailSessionNoUser(){		//声明HttpServletRequest获取到的是正常的HttpSession		EasyMock.expect(request.getSession()).andReturn(session);		//声明HttpSession中无用户		EasyMock.expect(session.getAttribute("loginUser")).andReturn(null);		EasyMock.replay(request, session);		//验证HttpSession中无用户时登录应该是失败的		Assert.assertFalse(servlet.isLogin(request));		EasyMock.verify(request, session);	}		/**	 * 测试登录成功的情况	 */	@Test	public void testIsLoginSuccess(){		//声明HttpServletRequest获取到的是正常的HttpSession		EasyMock.expect(request.getSession()).andReturn(session);		//声明HttpSession中存在用户		EasyMock.expect(session.getAttribute("loginUser")).andReturn(new User());		EasyMock.replay(request, session);		//验证HttpSession有效且存在用户时登录应该是成功的		Assert.assertTrue(servlet.isLogin(request));		EasyMock.verify(request, session);	}}

转载地址:http://iebra.baihongyu.com/

你可能感兴趣的文章
zabbix监控memcached模板
查看>>
JavaScript中的对象
查看>>
ELK中的redis的问题记录
查看>>
zabbix low level discovery example use python(web_site_url)
查看>>
分布式服务Dubbo+Zookeeper安全认证
查看>>
我的友情链接
查看>>
request.getRequestURI() 、request.getRequestURL()
查看>>
二叉查找树--查找、删除、插入(Java实现)
查看>>
简单的UDP多线程模型
查看>>
Unity曲线编辑器和bezier曲线插值
查看>>
android中数据存储的ContentProvider的使用方法
查看>>
网络系统管理与维护2488
查看>>
裸机telnet处理过程记录
查看>>
Nginx源码安装及调优
查看>>
EasyUi subgrid 三级列表实现
查看>>
python 使用curve25519
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
一个简单的AJAX示例(转)
查看>>
VMware esxi 5.1详细安装及设置
查看>>