08.利用Easymock测试简单的servlet
2024-08-23 21:08:59
1.首先导入需要使用的servlet的jar包
接下来我们编写一个登陆的servlet
package com.fjnu.service; import java.net.HttpRetryException; import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession; import com.fjnu.model.User; public class LoginServlet extends HttpServlet{ public boolean login(HttpServletRequest rep){ //首先获得登陆的session
HttpSession session = rep.getSession();
if(session == null){
return false;
}
User user = (User) session.getAttribute("username");
if(user == null){
return false;
}
return true;
} }
我们来编写测试代码
package com.fjnu.service; import static org.junit.Assert.*;
import static org.easymock.EasyMock.*; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession; import org.junit.Before;
import org.junit.Test; import com.fjnu.model.User;
public class TestHttpLoginByEasyMock {
private HttpServletRequest req;
private HttpSession session;
private LoginServlet servlet ; @Before
public void setUp(){
req = createStrictMock(HttpServletRequest.class);
session = createStrictMock(HttpSession.class);
servlet = new LoginServlet();
} /*
* 登陆操作有三个测试场景
* 第一个是登陆session为null
* 第二个是登陆获得用户名不存在
* 第三个是登陆成功
* */ @Test
public void testSeesionIsNull(){
expect(req.getSession()).andReturn(null);
replay(req,session);
//执行登陆操作返回值是false
assertFalse(servlet.login(req));
verify(req,session);
} @Test
public void testUserIsNull(){
expect(req.getSession()).andReturn(session);
expect(session.getAttribute("username")).andReturn(null);
replay(req,session);
//执行登陆操作返回值是false
assertFalse(servlet.login(req));
verify(req,session);
} @Test
public void testUserExits(){
expect(req.getSession()).andReturn(session);
expect(session.getAttribute("username")).andReturn(new User());
replay(req,session);
//执行登陆操作返回值是false
assertTrue(servlet.login(req));
verify(req,session);
}
}
视频下载地址
链接:https://pan.baidu.com/s/1U1zlhz9bQVXTFQqZGgC8pA 密码:423k
最新文章
- Data Transformation / Learning with Counts
- python 使用pip安装第三方模块
- [bzoj4326][NOIP2015]运输计划
- 一个iOS图片选择器的DEMO(实现图片添加,宫格排列,图片长按删除,以及图片替换等功能)
- java实例--海盗的最优方案
- mysql概要(六)连接
- o2o的一些看法
- Nonlinear Transform
- perl 面向对象demo
- 放爬虫nginx
- 用c#实现单链表(程序代码已经验证,完全正确)
- angular实现跨域
- java的集合框架set 和map的深入理解
- Kubernetes之调度器和调度过程
- ueditor内容带格式回显(html字符串回显)
- Asp.Net Core 输出 Word
- 【转】Android,iOS打开手机QQ与指定用户聊天界面
- InnoDB支持的最大事务数量
- Docker容器 暴露多个端口
- HTTPS加密过程分析