//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测试servlet使用代码
个人作品 4-EasyMock-Servlet.rar
使用junit和easymock对servlet进行测试。
基本上,使用 EasyMock 或 Mockito 来模拟常用对象,例如 servlet api 中的对象,是一种真正的痛苦。 多年来,我为我的其他项目开发了这个库,并复制了其中的选定部分。 我厌倦了这样做,只想在未来的项目中“包含...
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 ...
java后端源码部署 JavaTutorial(Java教程...EasyMock WireMock Mockito 网络&I/O RMI HTTP Netty 4.0.x 线程&并发 反射&代理 AOP 脚本语言 加密解密 开源组件 Slf4j Redis SSH Tomcat JBoss EJB 设计模式 Java工具
它提供了一种简单的方法来为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 测试...
TestMock的一个小案例代码 这是对一个servlet对一个小测试 有兴趣加QQ群:37424970 或联系本人MNS或邮箱:zhuseahui@yahoo.com.cn
easymockclassextension-3.0.jar fastjson-1.1.31.jar fastjson-1.2.28.jar fastjson-1.2.31.jar file-management-1.2.1.jar fst-1.55.jar grizzly-core-2.1.4.jar hessian-lite-3.2.1-fixed-2.jar hibernate-...