- 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);
}
}
不知道测试重定向的页面是不是这么测,我想应该是的。
分享到:
相关推荐
PowerMock与EasyMock是Java单元测试领域中的两个重要库,它们与JUnit结合使用,能够帮助开发者在测试过程中模拟复杂的对象行为和系统环境。这个压缩包"powermock-easymock-junit-1.5.4.zip"很可能包含了这三个库的...
【Junit单元测试完整案例】深入解析 在软件开发中,单元测试是验证代码功能是否正确、独立单元是否按预期工作的关键步骤。Junit作为Java领域最常用的单元测试框架,为开发者提供了简单易用的API来进行测试。本案例...
在Java单元测试中,PowerMock和EasyMock是两个强大的库,它们扩展了JUnit的功能,使得开发者可以测试那些通常难以或无法直接测试的代码。PowerMock是基于EasyMock的一个扩展,它允许模拟静态方法、构造函数、final类...
总结来说,本文档提供的内容涵盖了单元测试的基本概念、Mock技术的运用、JUnit框架的详细讲解,以及Mockito、MockMVC和Mock.js等工具的使用。通过这些知识,开发者可以构建更健壮的测试体系,提升代码质量和软件工程...
这个"EasyMock单元测试例子"提供了几个示例,帮助我们更好地理解和应用EasyMock。 EasyMock的基本概念: 1. **模拟对象(Mock Object)**:在单元测试中,我们可能不希望依赖实际的外部服务或数据库。模拟对象可以...
Junit和EasyMock是Java开发中广泛使用的两个工具,它们协同工作,帮助程序员高效地进行单元测试。 Junit是一个开源的Java测试框架,主要用于编写和运行面向对象软件的测试案例。它提供了断言方法来验证代码的行为,...
JUnit4作为Java平台上最流行的单元测试框架,极大地简化了测试代码的编写和执行。本篇将深入探讨JUnit4的相关知识点,帮助你更好地掌握这个强大的工具。 1. JUnit4简介: JUnit4是由Ernst Kuhr和Kent Beck开发的...
EasyMock和JUnit是两个常用的单元测试工具,它们在Java开发领域中广泛使用。让我们深入探讨一下这两个工具以及如何将它们结合使用。 首先,`JUnit`是一个开源的测试框架,主要用于编写Java应用程序的单元测试。它...
这篇博客主要探讨了如何使用JUnit进行Spring MVC Controller的单元测试。在实际开发中,单元测试可以帮助我们尽早发现潜在的问题,提高软件的可靠性和可维护性。 首先,让我们了解Spring MVC的基本概念。Spring MVC...
EasyMock 是一个流行的 Java 单元测试框架,它帮助开发者创建模拟对象来测试目标类的行为。这篇文档将深入探讨 EasyMock 的使用方法和原理,以便更好地理解和应用这一工具。 首先,让我们理解 EasyMock 的核心概念...
在进行单元测试时,有时我们需要模拟(Mock)依赖的对象,JUnit4虽然没有内置的模拟工具,但可以与其他模拟库(如Mockito)结合使用,提高测试的隔离性和准确性。 这个绿色免费版的JUnit4 jar包可能已经包含了所有...
首先,Easymock可以模拟那些难以或不适合在单元测试中直接操作的依赖,确保测试的独立性。然后,使用JUnit编写测试用例,覆盖各个功能点。最后,通过Selenium将这些测试扩展到实际的浏览器环境中,验证用户界面的...
Junit4作为Java领域中最常用的单元测试框架,是每个Java开发者必须掌握的技能之一。这篇压缩包文件中的"Junit4教程.doc"文档,很可能是提供了一步步学习和实践Junit4的详细指导。 首先,我们需要理解什么是单元测试...
本主题将深入探讨如何在JUnit4中结合Mockito进行单元测试。 一、JUnit4简介 JUnit4是JUnit系列的第四代产品,它引入了注解(annotations)来简化测试的编写。例如,`@Test`注解用于标记测试方法,`@Before`和`@...
本文件“用Java编写的最流行的单元测试mock框架.zip”主要包含了关于Mockito的相关资料,帮助开发者更好地理解和使用这个强大的工具。 Mockito是一个开源的Java库,专门设计用于创建模拟对象,以隔离被测试代码并...
深入学习Java单元测试(Junit+Mock+代码覆盖率) Java单元测试是软件测试的一种,旨在验证软件的正确性和可靠性。单元测试是编写测试代码,用来检测特定的、明确的、细颗粒的功能。单元测试并不一定保证程序功能是...
在进行单元测试时,有时我们需要模拟对象的行为,JUnit 4.8通过`@Mock`和`@Spy`注解配合Mockito库,使得创建和控制mock对象变得更加容易。这有助于隔离测试,避免了真实依赖对测试结果的影响。 除了核心的JUnit库,...
Struts2SpringUnitDemo是一个示例项目,展示了如何在Java应用程序中将Struts2和Spring框架进行集成,并进行单元测试。这两个框架都是Java Web开发中的关键组件,Struts2负责控制层逻辑,Spring则提供了全面的依赖...
Easymock是一个流行的Java库,它提供了创建和管理模拟对象的能力,帮助测试人员编写单元测试。 在"easymock测试servlet"的场景中,我们看到`SampleServletTest`类正在使用Easymock来测试`SampleServlet`类的行为。...
Mock方法则是单元测试中的一个重要工具,用于模拟复杂系统中的依赖关系,以便孤立地测试目标代码。在本篇文章中,我们将深入探讨单元测试与Mock方法的相关知识点。 首先,让我们理解单元测试的基本概念。单元测试是...