`
zjxs_sky100
  • 浏览: 28416 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

EasyMock辅助进行servlet测试

阅读更多
servelt的post处理方法:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html");
PrintWriter out = response.getWriter();

String name = request.getParameter("username");
String password = request.getParameter("password");

System.out.println(name + "    " + password);
if ("aa".equals(name) && "123".equals(password)) {
System.out.println("111");
request.getSession().setAttribute("user", new UserInfor(name,password));
out.println("ok");

} else {
out.println("error");
}
}

运用junit + EasyMock对servlet进行测试:
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.easymock.EasyMock;
import org.easymock.IMocksControl;
import org.junit.Test;


public class ServletDriver {


@Test
public void testJdbc() throws SQLException, IOException, ServletException {
// ResultSet mockResultSet = EasyMock.createMock(ResultSet.class);
// EasyMock.expect(mockResultSet.getString(1)).andReturn("one");
// EasyMock.replay(mockResultSet);

//应用control统一管理创建Mock对象
IMocksControl control = EasyMock.createControl();
HttpServletRequest request = control.createMock(HttpServletRequest.class);
HttpServletResponse response = control.createMock(HttpServletResponse.class);
HttpSession session = control.createMock(HttpSession.class);

//设定Mock对象的预期行为和输出
response.setContentType((String)EasyMock.anyObject());

//exceptLastCall获取上一次调用所对应的IExpectationSetters实例
EasyMock.expectLastCall().once();

EasyMock.expect(request.getParameter("username")).andReturn("aa");
EasyMock.expect(request.getParameter("password")).andReturn("123");
EasyMock.expect(response.getWriter()).andReturn(new PrintWriter(System.out,true));

//andStubReturn表示默认返回
EasyMock.expect(request.getSession()).andStubReturn(session);

/*************************************************************
* EasyMock使用参数匹配器
* EasyMock根据方法名和参数来匹配一个预期方法的调用,默认使用equals()进行
* 比较,在实际的使用过程中,比如参数是String类型的sql语句,sql语句的关键字
* 如果存在大小写的问题,那么EasyMock认为两个参数不匹配,造成Mock对象的
* 预期方法不被调用。
* 解决:使用灵活的参数匹配方式来解决这个问题。anyObject方法表示任意输入值
* 与预期值匹配。还有:aryEq,isNull,notNull,same等,具体请参考IBM技术网站
* 地址(http://www.ibm.com/developerworks/cn/opensource/os-cn-easymock/#chap3)
************************************************************/
session.setAttribute((String)EasyMock.anyObject(),EasyMock.anyObject());
EasyMock.expectLastCall().once();
//=======================以上是Mock对象的记录============================

//=======================把Mock对象切换到回放状态=========================
control.replay();

LoginServlet loginServlet = new LoginServlet();
loginServlet.doPost(request, response);


//校验行为
control.verify();

}
}
0
1
分享到:
评论

相关推荐

    easymock测试servlet

    easymock测试servlet使用代码

    模拟测试辅助工具easyMock.zip

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

    servlet测试jar包

    使用junit和easymock对servlet进行测试。

    4-EasyMock-Servlet.rar

    个人作品 4-EasyMock-Servlet.rar

    easymock的使用,含demo

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

    EasyMock单元测试例子

    几个例子展示如何使用EasyMock进行单元测试

    Junit+EasyMock单元测试使用资料以及案例分析

    Junit+EasyMock单元测试使用资料以及案例分析,供学习单元测试的朋友学习使用!

    easymock-request.getParamsNames

    easymock servlet 单元测试

    easymock 3.0

    easymock junit test 单元测试 java

    easymock-3.2.jar

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

    转:EasyMock 单元测试

    NULL 博文链接:https://xuan0506.iteye.com/blog/1041296

    EasyMock 使用方法与原理剖析

    EasyMock单元测试的扩展;...EasyMock来进行测试; EasyMock如何打桩; EasyMock实践指南; EasyMock使用技巧; EasyMock使用简明手册; EasyMock使用说明; EasyMock使用手记; 用Mock object进行隔离测试;

    easyMock

    easyMock

    easymock-4.2.jar

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

    EasyMock.jar

    EasyMock.jar 单元测试模拟对象 为实现!!

    EasyMock 使用案例(含lib)

    使用EasyMock做java单元测试的例子,包含所需要的jar包

    easymock-2.5.2工具 下载

    EasyMock 是一套通过简单的方法对于指定的接口或类生成 Mock 对象的类库,它能利用对接口或类的模拟来辅助单元测试。

    easymock-3.2.zip

    EasyMock是Java进行单元测试的一个工具,和JUnit搭配使用,该版本为3.2,该文件包括了doc文档,api文档,示例文档和所需jar包等。 该文件是从官网上下载的,请大家放心下载。

    EasyMock介绍及安装方法含安装方法和所有需要的软件包

    使用 EasyMock 进行单元测试的步骤包括: 生成模拟对象:根据指定的接口或类,EasyMock 能够动态地创建模拟对象。 设置预期行为:为模拟对象设置预期的行为,包括方法调用的次数、顺序以及返回值等。 切换到回放模式...

    easymock-4.0-bundle

    手动的构造 Mock 对象会给开发人员带来额外的编码量,而且这些为创建 Mock 对象而编写的代码很有可能引入错误。目前,有许多开源项目对动态...通过 EasyMock,我们可以方便的构造 Mock 对象从而使单元测试顺利进行。

Global site tag (gtag.js) - Google Analytics