//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();
}
}
分享到:
相关推荐
【EasyMock-Servlet详解】 EasyMock是一个流行的Java模拟框架,它允许开发者在单元测试中创建和控制对象的行为,以此来模拟复杂的系统交互。在Servlet环境下,EasyMock可以帮助我们测试独立于实际HTTP请求的Servlet...
在"easymock测试servlet"的场景中,我们看到`SampleServletTest`类正在使用Easymock来测试`SampleServlet`类的行为。以下是一些关键知识点: 1. **Easymock库**:Easymock是一个开源库,它提供了模拟Java对象的方法...
本文将详细讲解如何使用 Easymock 对 Servlet 进行单元测试,特别是针对 `HttpServletRequest` 中获取参数的方法 `getParamsNames()`。 在Servlet编程中,`HttpServletRequest` 是一个核心接口,它提供了处理HTTP...
`junit`和`easymock`是两个非常重要的Java测试工具,它们可以帮助我们有效地对Servlet进行单元测试和模拟测试。 `junit`是一个流行的开源单元测试框架,它为Java程序员提供了一种方便的方式来编写和运行可重复的...
基本上,使用 EasyMock 或 Mockito 来模拟常用对象,例如 servlet api 中的对象,是一种真正的痛苦。 多年来,我为我的其他项目开发了这个库,并复制了其中的选定部分。 我厌倦了这样做,只想在未来的项目中“包含...
这个代理Servlet允许GWT应用在跨域限制下与远程服务器进行通信,这对于开发和测试多服务集成至关重要。" 【详细知识点】 1. **PowerMock**: PowerMock 是一个强大的Java单元测试框架,它扩展了其他Mocking库如...
2. **构建环境**: 创建一个Maven项目,如`catalina_home`,并配置`pom.xml`文件,添加必要的依赖,包括Tomcat自身的模块和其他辅助测试库(如JUnit和EasyMock)。 3. **配置源码路径**: 在IDE中导入Tomcat源码,确保...
7. **测试**:在Spring2中,我们可以使用JUnit进行单元测试,结合`Mockito`或`EasyMock`进行依赖模拟,确保代码质量。 以上就是MyEclipse中配置Spring2的基本流程和相关知识点。虽然Spring已经发展到更高版本,但...
Tomcat作为一个开源的Java Servlet容器,是许多Web应用程序的基础,它实现了Java EE的Servlet和JSP规范,使得开发者能够在服务器端部署和管理Java应用。 【描述】中提到的"源码依赖jar包",意味着这些文件是Tomcat ...
StrtusTest是junit的扩展,使用它,不需要启动servlet容器就可以方便的测试struts应用程序(容器外测试)。它也是属于使用Mock对象测试,但是与EasyMock不同的是,EasyMock是提供了创建Mock对象的API,而StrutsTest...
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 ...
2. **easymock**: EasyMock是一个单元测试框架,允许开发者创建模拟对象来隔离测试代码。在Tomcat的源码测试中,它可能用于模拟复杂的协作对象。 3. **hamcrest-core**: Hamcrest是一个匹配对象的库,常用于单元...
java后端源码部署 JavaTutorial(Java教程...EasyMock WireMock Mockito 网络&I/O RMI HTTP Netty 4.0.x 线程&并发 反射&代理 AOP 脚本语言 加密解密 开源组件 Slf4j Redis SSH Tomcat JBoss EJB 设计模式 Java工具
Tomcat是一款广泛使用的开源Java Servlet容器,它用于部署和运行Java Web应用程序。在某些情况下,可能需要通过命令行手动停止或启动Tomcat进程,例如进行系统维护、更新应用或解决性能问题。 在Linux或Unix环境中...
Glassfish是开源的应用服务器,支持Java EE(现在称为Jakarta EE)规范,包括Servlet、JSP、EJB等。它提供了一个运行环境,用于部署和管理Java Web应用程序。 9. **DatabaseDriver** 这个名称可能是指不同数据库...
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客户端代码编写快速的Java测试,而无需GWTTestCase或任何servlet容器实例! 这意味着您可以不受限制地使用任何Java工具:JUnit,反射,Easymock,Mockito等。 编写测试如下所示: @...
-展示柜奥普方面spring-aop 引导程序缓存——弹簧缓存数据库米巴蒂斯蔚来米娜2 nosql redis -- jedis, spring-data-redis 序列化——msgpack,protobuf 测试单位——dbunit、easymock、junit、mockito、powermock ...
用 J2EE 编写的服务器端(REST API)(使用 GSON lib 具有 JSON 响应的 Servlet)。 Hibernate 用于 SQL 中的持久性(MySQL 文件夹中的 SQL DB 结构转储)。 简单的基于 HttpSession 的身份验证。 JUnit 测试...