`

EasyMock servlet

 
阅读更多
//EasyMockServlet.java
package com.abin.lee.easymock.servlets;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
* Created with IntelliJ IDEA.
* User: abin
* Date: 13-4-22
* Time: 下午3:12
* To change this template use File | Settings | File Templates.
*/
public class EasyMockServlet extends HttpServlet {
    public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
        System.out.println("doPost come in");
        String userName=request.getParameter("userName");
        String passWord=request.getParameter("passWord");
        System.out.println("userName="+userName+",passWord="+passWord);
        if("abin".equals(userName)&&"varyall".equals(passWord)){
            System.out.println("come in");
            ServletContext context=this.getServletContext();
            RequestDispatcher dispatcher=context.getNamedDispatcher("dispatcher");
            dispatcher.forward(request,response);
        }else{
            throw new RuntimeException("Login failed.");
        }
    }

}





//EasyMockServletFailedTest.java
package com.abin.lee.easymock.servlets;

import org.easymock.EasyMock;
import org.easymock.IMocksControl;
import org.junit.Test;

import javax.servlet.http.HttpServletRequest;

import static junit.framework.TestCase.assertEquals;
import static org.junit.Assert.fail;

/**
* Created with IntelliJ IDEA.
* User: abin
* Date: 13-4-22
* Time: 下午5:08
* To change this template use File | Settings | File Templates.
*/
public class EasyMockServletFailedTest {
    @Test
    public void testEasyMockServletFailed(){
        HttpServletRequest request=EasyMock.createMock(HttpServletRequest.class);
        EasyMock.expect(request.getParameter("userName")).andReturn("abin");
        EasyMock.expect(request.getParameter("passWord")).andReturn("varyall").times(1);
        EasyMock.replay(request);
        EasyMockServlet easyMockServlet=new EasyMockServlet();
        try {
              easyMockServlet.doPost(request,null);
              fail("Not caught exception!");
        }catch(Exception e){
            assertEquals("Login failed.", e.getMessage());
            e.printStackTrace();
        }
        EasyMock.verify(request);
    }
}






//EasyMockServletSuccessTest
package com.abin.lee.easymock.servlets;

import org.easymock.EasyMock;
import org.easymock.IMocksControl;
import org.junit.Test;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
* Created with IntelliJ IDEA.
* User: abin
* Date: 13-4-22
* Time: 下午7:49
* To change this template use File | Settings | File Templates.
*/
public class EasyMockServletSuccessTest {
    @Test
    public void testEasyMockServletSuccess() throws ServletException, IOException {
        IMocksControl control= EasyMock.createControl();
        HttpServletRequest request=control.createMock(HttpServletRequest.class);
//        HttpServletResponse response=control.createMock(HttpServletResponse.class);
        final ServletContext servletContext=control.createMock(ServletContext.class);
        RequestDispatcher requestDispatcher=control.createMock(RequestDispatcher.class);

        EasyMock.expect(request.getParameter("userName")).andReturn("abin").once();
        EasyMock.expect(request.getParameter("passWord")).andReturn("varyall").once();
        EasyMock.expect(servletContext.getNamedDispatcher("dispatcher")).andReturn(requestDispatcher).times(1);

        requestDispatcher.forward(request,null);
        EasyMock.expectLastCall();

        control.replay();

        EasyMockServlet easyMockServlet=new EasyMockServlet(){
           public ServletContext getServletContext(){
               return servletContext;
           }
        } ;

        easyMockServlet.doPost(request,null);
        control.verify();


    }
}
分享到:
评论

相关推荐

    4-EasyMock-Servlet.rar

    【EasyMock-Servlet详解】 EasyMock是一个流行的Java模拟框架,它允许开发者在单元测试中创建和控制对象的行为,以此来模拟复杂的系统交互。在Servlet环境下,EasyMock可以帮助我们测试独立于实际HTTP请求的Servlet...

    easymock测试servlet

    在"easymock测试servlet"的场景中,我们看到`SampleServletTest`类正在使用Easymock来测试`SampleServlet`类的行为。以下是一些关键知识点: 1. **Easymock库**:Easymock是一个开源库,它提供了模拟Java对象的方法...

    easymock-request.getParamsNames

    本文将详细讲解如何使用 Easymock 对 Servlet 进行单元测试,特别是针对 `HttpServletRequest` 中获取参数的方法 `getParamsNames()`。 在Servlet编程中,`HttpServletRequest` 是一个核心接口,它提供了处理HTTP...

    servlet测试jar包

    `junit`和`easymock`是两个非常重要的Java测试工具,它们可以帮助我们有效地对Servlet进行单元测试和模拟测试。 `junit`是一个流行的开源单元测试框架,它为Java程序员提供了一种方便的方式来编写和运行可重复的...

    ServletApiMock:*** 正在建设中 *** 这是一个为 Servlet API 提供模拟的测试库

    基本上,使用 EasyMock 或 Mockito 来模拟常用对象,例如 servlet api 中的对象,是一种真正的痛苦。 多年来,我为我的其他项目开发了这个库,并复制了其中的选定部分。 我厌倦了这样做,只想在未来的项目中“包含...

    powermock-examples-documentationexamples-1.4.10.zip

    这个代理Servlet允许GWT应用在跨域限制下与远程服务器进行通信,这对于开发和测试多服务集成至关重要。" 【详细知识点】 1. **PowerMock**: PowerMock 是一个强大的Java单元测试框架,它扩展了其他Mocking库如...

    S03-tomcat源码调试以及架构学习1

    2. **构建环境**: 创建一个Maven项目,如`catalina_home`,并配置`pom.xml`文件,添加必要的依赖,包括Tomcat自身的模块和其他辅助测试库(如JUnit和EasyMock)。 3. **配置源码路径**: 在IDE中导入Tomcat源码,确保...

    spring2配置

    7. **测试**:在Spring2中,我们可以使用JUnit进行单元测试,结合`Mockito`或`EasyMock`进行依赖模拟,确保代码质量。 以上就是MyEclipse中配置Spring2的基本流程和相关知识点。虽然Spring已经发展到更高版本,但...

    tomcat-8.0依懒包

    Tomcat作为一个开源的Java Servlet容器,是许多Web应用程序的基础,它实现了Java EE的Servlet和JSP规范,使得开发者能够在服务器端部署和管理Java应用。 【描述】中提到的"源码依赖jar包",意味着这些文件是Tomcat ...

    StrutsTest

    StrtusTest是junit的扩展,使用它,不需要启动servlet容器就可以方便的测试struts应用程序(容器外测试)。它也是属于使用Mock对象测试,但是与EasyMock不同的是,EasyMock是提供了创建Mock对象的API,而StrutsTest...

    TutorialsPoint Java 技术教程 20160127

    ant awt easymock ejb guava hibernate ibatis jackson jsaperreprts java.io java.lang mail java.math java.util xml java java实例 javafx jdbc jfreechart jmeter jogl jpa log4j lucene maven mybatis poi ...

    tomcat源码运行缺少jar

    2. **easymock**: EasyMock是一个单元测试框架,允许开发者创建模拟对象来隔离测试代码。在Tomcat的源码测试中,它可能用于模拟复杂的协作对象。 3. **hamcrest-core**: Hamcrest是一个匹配对象的库,常用于单元...

    java后端源码部署-JavaTutorial:Java教程:基础、中级、高级;常用的工具和Servlet容器使用说明

    java后端源码部署 JavaTutorial(Java教程...EasyMock WireMock Mockito 网络&I/O RMI HTTP Netty 4.0.x 线程&并发 反射&代理 AOP 脚本语言 加密解密 开源组件 Slf4j Redis SSH Tomcat JBoss EJB 设计模式 Java工具

    Shell kill tomcat process

    Tomcat是一款广泛使用的开源Java Servlet容器,它用于部署和运行Java Web应用程序。在某些情况下,可能需要通过命令行手动停止或启动Tomcat进程,例如进行系统维护、更新应用或解决性能问题。 在Linux或Unix环境中...

    java常用Jar包

    Glassfish是开源的应用服务器,支持Java EE(现在称为Jakarta EE)规范,包括Servlet、JSP、EJB等。它提供了一个运行环境,用于部署和管理Java Web应用程序。 9. **DatabaseDriver** 这个名称可能是指不同数据库...

    spring框架各jar包详解

    j2eeactivation.jar, connector-api.jar, ejb.jar, jaxrpc.jar, jdbc2_0-stdext.jar, jms.jar, jstl.jar, jta.jar, mail.jar, servlet.jar, xml-apis.jar J2EE 相关的各种不同 JAR 文件数量相当可观。如果你想要...

    gwt-test-utils:gwt-test-utils是一个Java框架,允许以高效,简便的方式测试GWT客户端代码

    它提供了一种简单的方法来为GWT客户端代码编写快速的Java测试,而无需GWTTestCase或任何servlet容器实例! 这意味着您可以不受限制地使用任何Java工具:JUnit,反射,Easymock,Mockito等。 编写测试如下所示: @...

    xun:spring, spring-mvc, struts2, freemarker, hibernate, mybatis, spring-data-jpa, shiro

    -展示柜奥普方面spring-aop 引导程序缓存——弹簧缓存数据库米巴蒂斯蔚来米娜2 nosql redis -- jedis, spring-data-redis 序列化——msgpack,protobuf 测试单位——dbunit、easymock、junit、mockito、powermock ...

    simple-crm-rest-and-spa:使用 Servlets + Hibernate 持久性 + JUnit 测试 + SPA w 的 REST 服务。 AJAX 请求 + MVC 架构 + 更多的库和技术..

    用 J2EE 编写的服务器端(REST API)(使用 GSON lib 具有 JSON 响应的 Servlet)。 Hibernate 用于 SQL 中的持久性(MySQL 文件夹中的 SQL DB 结构转储)。 简单的基于 HttpSession 的身份验证。 JUnit 测试...

Global site tag (gtag.js) - Google Analytics