`

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 ...

    Spring单元测试详细介绍.pdf

    这些模拟对象针对Spring Web MVC进行了优化,并且通常比其他模拟框架如EasyMock更加方便。Spring 6.0中,模拟对象基于Servlet 6.0 API实现。Spring MVC Test框架基于模拟的Servlet API对象,为Spring MVC提供了一个...

    Spring 依赖的Jar包简介

    `easymock.jar`, `easymockclassextension.jar`用于Spring测试套件,仅在构建和运行测试时需要,不需包含在部署应用中。 9. **FreeMarker**: `freemarker.jar`是Spring支持的模板引擎之一,如果应用使用...

    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 ...

Global site tag (gtag.js) - Google Analytics