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

最新文章

  1. Data Transformation / Learning with Counts
  2. python 使用pip安装第三方模块
  3. [bzoj4326][NOIP2015]运输计划
  4. 一个iOS图片选择器的DEMO(实现图片添加,宫格排列,图片长按删除,以及图片替换等功能)
  5. java实例--海盗的最优方案
  6. mysql概要(六)连接
  7. o2o的一些看法
  8. Nonlinear Transform
  9. perl 面向对象demo
  10. 放爬虫nginx
  11. 用c#实现单链表(程序代码已经验证,完全正确)
  12. angular实现跨域
  13. java的集合框架set 和map的深入理解
  14. Kubernetes之调度器和调度过程
  15. ueditor内容带格式回显(html字符串回显)
  16. Asp.Net Core 输出 Word
  17. 【转】Android,iOS打开手机QQ与指定用户聊天界面
  18. InnoDB支持的最大事务数量
  19. Docker容器 暴露多个端口
  20. HTTPS加密过程分析

热门文章

  1. HttpServletRequestWrapper 类&过滤指定文字
  2. Weblogic 漏洞利用总结
  3. HotRing: A Hotspot-Aware In-Memory Key-Value Store(FAST ’20)
  4. Rocket - diplomacy - MixedNode
  5. Javascript中target事件属性,事件的目标节点的获取。
  6. C++实现车轮轨迹
  7. Java实现John's trip(约翰的小汽车)
  8. TZOJ Start
  9. unittest单元测试框架入门及应用
  10. zabbix通过Web场景监控URL