关键字: servlet 单元测试 mock easymock2 junit4
用的JUnit是4.4版,EasyMock2.3。
这是Servlet:
- package net.javayuan.servlet;
-
-
import java.io.IOException;
-
-
import javax.servlet.ServletException;
-
import javax.servlet.http.HttpServlet;
-
import javax.servlet.http.HttpServletRequest;
-
import javax.servlet.http.HttpServletResponse;
-
-
-
-
-
-
-
-
public class LoginServlet extends HttpServlet {
-
-
-
-
-
private static final long serialVersionUID = -7068817837964223972L;
-
-
@Override
-
public void doPost(HttpServletRequest request, HttpServletResponse response)
-
throws IOException,ServletException{
-
String username = request.getParameter("username").trim();
-
String password = request.getParameter("password");
-
if ("yuan".equals(username) && "123456".equals(password))
-
response.sendRedirect("welcome.jsp");
-
else
-
response.sendRedirect("error.jsp");
- }
- }
package net.javayuan.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @(#)LoginServlet.java 2008-6-4 下午11:39:05
*
* @author Yuan
* LoginServlet
*/
public class LoginServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = -7068817837964223972L;
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException,ServletException{
String username = request.getParameter("username").trim();
String password = request.getParameter("password");
if ("yuan".equals(username) && "123456".equals(password))
response.sendRedirect("welcome.jsp");
else
response.sendRedirect("error.jsp");
}
}
这是Test Case:
- package net.javayuan.servlet;
-
-
import static org.easymock.EasyMock.*;
-
-
import java.io.IOException;
-
-
import org.junit.Test;
-
import org.junit.After;
-
import org.junit.Before;
-
-
import javax.servlet.ServletException;
-
import javax.servlet.http.HttpServletRequest;
-
import javax.servlet.http.HttpServletResponse;
-
-
-
-
-
-
-
public class LoginServletTest {
-
-
private LoginServlet servlet;
-
private HttpServletRequest mockRequest;
-
private HttpServletResponse mockResponse;
-
-
@Before
-
public void setUp(){
-
-
servlet = new LoginServlet();
-
-
-
mockRequest = createMock(HttpServletRequest.class);
-
mockResponse = createMock(HttpServletResponse.class);
- }
-
-
@After
-
public void tearDown(){
-
-
- verify(mockRequest);
- verify(mockResponse);
- }
-
-
-
-
-
-
-
@Test
-
public void testDoPost() throws IOException, ServletException{
-
-
-
mockRequest.getParameter("username");
-
expectLastCall().andReturn("yuan");
-
-
mockRequest.getParameter("password");
-
expectLastCall().andReturn("123456");
-
-
mockResponse.sendRedirect("welcome.jsp");
-
-
- replay(mockRequest);
- replay(mockResponse);
-
-
- servlet.doPost(mockRequest, mockResponse);
- }
-
- }
package net.javayuan.servlet;
import static org.easymock.EasyMock.*;
import java.io.IOException;
import org.junit.Test;
import org.junit.After;
import org.junit.Before;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @(#)LoginServlet.java 2008-6-5 上午09:19:42
*
* @author Yuan
* LoginServlet Test Case
*/
public class LoginServletTest {
private LoginServlet servlet;
private HttpServletRequest mockRequest;
private HttpServletResponse mockResponse;
@Before
public void setUp(){
servlet = new LoginServlet();
//创建request和response的Mock
mockRequest = createMock(HttpServletRequest.class);
mockResponse = createMock(HttpServletResponse.class);
}
@After
public void tearDown(){
//为了验证指定的调用行为确实发生了,要调用verify(mock)进行验证。
verify(mockRequest);
verify(mockResponse);
}
/**
* 测试doPost方法
* @throws IOException
* @throws ServletException
* */
@Test
public void testDoPost() throws IOException, ServletException{
//录制request和response的动作
mockRequest.getParameter("username");
expectLastCall().andReturn("yuan");//设置前一方法被调用时的返回值
mockRequest.getParameter("password");
expectLastCall().andReturn("123456");
mockResponse.sendRedirect("welcome.jsp");
//回放
replay(mockRequest);
replay(mockResponse);
//开始测试Servlet的doPost方法
servlet.doPost(mockRequest, mockResponse);
}
}
分享到:
相关推荐
Servlet Filter 的单元测试Servlet Filter 的单元测试Servlet Filter 的单元测试Servlet Filter 的单元测试Servlet Filter 的单元测试
参考博文:http://blog.csdn.net/u011638419/article/details/41407401
easymock servlet 单元测试
都会需要对代码进行单元测试,对于关联依赖关系少或者比较简单的类来说,直接使用JUnit就可以轻松的完成测试工作,但是对于关联到其它比较复杂的类或对运行环境有要求的类的单元测试,比如ejb,servlet或Dao等,测试...
感兴趣的文件可以在/src/main/resources/serve-me.html找到提供HTML页面插件的Servlet代码为/src/main/java/com/cloudbees/devoptics/jira/DevOpticsJIRAServerPluginServlet.java Servlet单元测试为/src/test/java/...
学生信息管理系统,Javaweb网站,使用了jsp,servlet,Junit,filter,还有附带的sql语句
内部含有httpunit单元测试所必需的jar包 httpunit.jar, js.jar, nekohtml.jar, xercesImpl.jar, xercesSamples.jar, servlet-api.jar, resolver.jar
运用JUnit工具进行编写测试用例,进行单元测试和集成测试。在界面上运用Ajax技术来实现XML文件存放数据,并以人性化的控件完成复杂的业务流程。考虑到排课任务的繁重,设计了自动排课算法,可以完成特定需求的排课。...
在具体的使用场景中,例如,对于一些不容易构造或者获取的对象(如HttpServletRequest必须在Servlet容器中才能构造出来,或者JDBC中的ResultSet对象),Mockito可以创建一个虚拟的对象(即Mock对象)进行测试。...
单元测试TestNG工具(jar),解压后直接放至eclipse安装目录下
Karibu测试:Vaadin单元测试 的单元测试库。 Karibu-Testing使您能够直接从JUnit测试方法调用UI.getCurrent() ,并在此过程中收到有意义的结果。 您可以调用UI.navigate()在应用程序中浏览; 您可以直接从JUnit测试...
Cactus是一个基于JUnit框架的简单测试框架,用来单元测试服务端Java代码。Cactus框架的主要目标是能够单元测试服务端的使用Servlet对象的Java方法如HttpServletRequest,HttpServletResponse,HttpSession等
解释下单元测试,集成测试,系统测试以及验收测试?探索性测试是什么?应该怎么做?什么是冒烟测试,如何有效的开展冒烟测试?一条高质量的缺陷记录(Bug)应该具有哪些内容?缺陷的生命周期是怎样的?Alpha测试与Beta测试...
junit_MockServlet小例子 包含src和jar包 《Pragmatic Unit Testing单元测试之道》6.3测试servlet 例子实现
运用JUnit工具进行编写测试用例,进行单元测试和集成测试。在界面上运用Ajax技术来实现XML文件存放数据,并以人性化的控件完成复杂的业务流程。考虑到排课任务的繁重,设计了自动排课算法,可以完成特定需求的排课。...
运用JUnit工具进行编写测试用例,进行单元测试和集成测试。在界面上运用Ajax技术来实现XML文件存放数据,并以人性化的控件完成复杂的业务流程。考虑到排课任务的繁重,设计了自动排课算法,可以完成特定需求的排课。...
该项目的目标是证明: 如何使用 DispatcherServlet 为控制器编写单元测试来处理请求,从而在不需要运行 Servlet 容器的情况下近似完整的集成测试; 如何编写集成测试来测试所有应用程序层的集成,而无需运行 ...
运用JUnit工具进行编写测试用例,进行单元测试和集成测试。在界面上运用Ajax技术来实现XML文件存放数据,并以人性化的控件完成复杂的业务流程。考虑到排课任务的繁重,设计了自动排课算法,可以完成特定需求的排课。...
主要包括; 1)主程序设计 2) 公共模块设计 3)游戏模块设计 4)雨污水模块设计 5)单元测试 和游戏发布
这是一个完整的web应用程序,实现了教师出题、学生在线考试(自由测试、单元测试、模拟考试)、错题本,以及相关的系统维护功能。在线测试的功能主要包括三部分:教师出题、学生在线考试和系统维护:系统维护包括对...