08.利用Easymock测试简单的servlet
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
08.利用Easymock测试简单的servlet的更多相关文章
- SoapUI 利用SoapUI进行简单的接口并发测试
利用SoapUI进行简单的接口并发测试 by:授客 QQ:1033553122 测试环境: SoapUI Pro 5.1.2 步骤如下 1. 把请求添加到测试套件 1.1. 途径1 1.新 ...
- Servlet复习1: 一个简单的Servlet的使用
Servlet学习 1. Servlet与JSP的关系 2. Servlet的声明周期 3. 一个简单的Servlet的使用方法 什么是Servlet? 什么又是JSP? 继承了javax.servl ...
- Tomcat剖析(二):一个简单的Servlet服务器
Tomcat剖析(二):一个简单的Servlet服务器 1. Tomcat剖析(一):一个简单的Web服务器 2. Tomcat剖析(二):一个简单的Servlet服务器 3. Tomcat剖析(三) ...
- 利用monkey测试android,入门级用户可能遇见的错误及解决办法 【转】
转自[http://blog.csdn.net/zm2714/article/details/7977930] 一.D:\android\android-sdk-windows\tools目录中没有a ...
- Python 利用Python编写简单网络爬虫实例3
利用Python编写简单网络爬虫实例3 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://bbs.51testing. ...
- Python 利用Python编写简单网络爬虫实例2
利用Python编写简单网络爬虫实例2 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://www.51testing. ...
- vue springboot利用easypoi实现简单导出
vue springboot利用easypoi实现简单导出 前言 一.easypoi是什么? 二.使用步骤 1.传送门 2.前端vue 3.后端springboot 3.1编写实体类(我这里是dto, ...
- 深入剖析tomcat之一个简单的servlet容器
上一篇,我们讲解了如果开发一个简单的Http服务器,这一篇,我们扩展一下,让我们的服务器具备servlet的解析功能. 简单介绍下Servlet接口 如果我们想要自定义一个Servlet,那么我们必须 ...
- 学习笔记:利用GDI+生成简单的验证码图片
学习笔记:利用GDI+生成简单的验证码图片 /// <summary> /// 单击图片时切换图片 /// </summary> /// <param name=&quo ...
随机推荐
- DataFrame-选择与切片
取得DataFrame对象reviews的description列的前10个值(或者说reviews前10行的description列): reviews.iloc[:10].loc[:,'descr ...
- unix 密码破解,zip破解总结
unix /etc/passwd 破解,假设的前两位是salt import crypt #数据比较 def password_crak(pass_word): salt = pass_word[0: ...
- 关于bootstrap modal 垂直滚动条 每次打开后不置顶的问题
打开modal时,滚动条默认没有置顶. 查了很久,网上找了很多资料都没有解决. 经分析是需要在modal的消失事件中添加让滚动条置顶的方法.
- Chisel3 - bind - Data
https://mp.weixin.qq.com/s/ENJVkz88sGgyODRNCu9jhQ 介绍Data类中的binding的定义和用法. Binding stores informa ...
- jchdl - RTL实例 - Mux
https://mp.weixin.qq.com/s/OmQRQU2mU2I5d-qtV4PAwg 二选一输出. 参考链接 https://github.com/wjcdx/jchdl/blo ...
- 【Linux】文件权限,ssh免密登录
1.文件/文件夹权限 例子: -rw-r--r--. 1 root root 12288 Aug 21 09:50 aliases.db drwxr-xr-x. 2 root root 4096 Au ...
- SpringBoot整合Flyway(数据库版本迁移工具)
简介 在团队开发当中,有可能每个人都是使用自己本地的数据库.当数据库的表或者字段更新时,往往需要告知团队的其他同事进行更新. Flyway数据库版本迁移工具,目的就是解决该问题而诞生的(我自己想的). ...
- Java实现 LeetCode 659 分割数组为连续子序列 (哈希)
659. 分割数组为连续子序列 输入一个按升序排序的整数数组(可能包含重复数字),你需要将它们分割成几个子序列,其中每个子序列至少包含三个连续整数.返回你是否能做出这样的分割? 示例 1: 输入: [ ...
- Linux 服务管理-服务分类
Linux中的服务根据安装方法的不同可以分为RPM包默认安装的服务和源码包安装的服务,而RPM包安装的服务又依据启动和自启动的不同分为独立服务和基于xinetd服务. 查看已经安装的服务 查看所有RP ...
- Jmeter加密函数__digest总结
__digest可对多个字符串拼接起来后进行加密,支持多种加密方式,如MD5.MD2.SHA-1.SHA-224.SHA-256.SHA-384.SHA-512. 使用起来非常方便. (注:Jmete ...