用的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;
/**
* @(#)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;
/**
* @(#)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);
}
}
不知道测试重定向的页面是不是这么测,我想应该是的。
分享到:
- 2008-06-05 15:38
- 浏览 3879
- 评论(2)
- 论坛回复 / 浏览 (2 / 3994)
- 查看更多
相关推荐
5. **测试用例**:如果有的话,可能会有测试类,用于验证Servlet功能的正确性。 **Servlet基础知识**: - **Servlet生命周期**:Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。 - **Servlet API**:`...
StrutsTestCase是Apache Struts框架的一个扩展,它提供了一种集成测试工具,使得开发者能够方便地对基于Struts的应用程序进行单元测试和功能测试。这个压缩包“StrutsTestCase-2.1.4(含文档、源码、官方示例).rar...
【标题】"会员商城初学者学习代码"是一个适合新手的Java系统项目,旨在帮助初学者理解和实践电商系统的基本开发流程。这个项目的核心是提供一个易于理解的代码库,让学习者能够快速上手并深入掌握Java编程语言以及...
通过学习这个DEMO,你可以深入理解Servlet生命周期、JDBC操作数据库的步骤、JavaBean如何封装数据以及如何编写单元测试保障代码质量。同时,这也是一个良好的起点,可以在此基础上扩展出更复杂的业务逻辑和功能。
12. **单元测试和持续集成**:JUnit是Java的单元测试框架,通过编写测试用例来验证代码功能。持续集成工具(如Jenkins)能自动化构建和测试过程,确保代码质量。 总之,学习Java需要逐步掌握这些基础知识,并通过...
Java是一种广泛使用的面向...通过这些文件名,我们可以推测压缩包包含了一系列基础到进阶的Java编程示例,涵盖了面向对象编程、输入输出、测试、并发、网络和Web开发等多个方面,对初学者来说是非常宝贵的学习资源。
8. **测试用例**:JUnit或其他测试框架的测试用例,帮助验证代码功能并指导单元测试。 9. **实例应用**:可能包含一个完整的Web应用,演示了从用户登录、权限控制到数据展示等功能,供学习者参考和实践。 这个资源...
6. **测试**:理解单元测试的重要性,学习如何编写和运行JUnit测试用例。 通过对这个项目的学习,你可以系统地提升Java Web开发能力,掌握完整的项目开发流程,从需求分析、设计、编码到测试和部署。这将对你的职业...
6. **单元测试和集成测试**:良好的项目应该包含测试代码,如JUnit测试用例,以确保各个模块的功能正确无误。 7. **部署和容器**:项目可能使用Tomcat或Jetty这样的Java应用服务器进行部署,也可能涉及Docker容器化...
Junit标签提示了还包含了单元测试的相关知识,JUnit是Java中最常用的单元测试框架,它使得编写和执行测试用例变得简单,是保证代码质量的重要工具。 总的来说,这个压缩包是一个丰富的学习资源,无论是初学者还是...
7. **单元测试**:为了确保代码质量,项目可能包含了JUnit或其他测试框架编写的测试用例。 通过研究这个项目,无论是初学者还是经验丰富的开发者,都能从中获得宝贵的学习经验和实践机会。无论是理解游戏算法,还是...
9. **单元测试和集成测试**:JUnit和Mockito等工具可能用于编写测试用例,确保代码质量和系统功能的正确性。 10. **文档编写**:包括需求规格书、设计文档、用户手册等,帮助理解系统功能和操作流程。 通过深入...
对于初学者或者开发者来说,这是一个很好的实践机会,可以通过解决实际问题来提升自己的技能。 从【压缩包子文件的文件名称列表】"第一组-网上购物系统的设计与实现"来看,我们可以期待一系列有关系统设计和实现的...
【描述】"可以看看项目 javaweb项目"提示我们这个项目是JavaWeb开发的一个实例,旨在提供学习和参考。JavaWeb是一种广泛应用于构建动态网站和企业级应用的技术,它结合了Java编程语言、Servlets、JSP(JavaServer ...
在了解这个版本之前,我们先来看看Apache CXF的基本概念和功能。 Apache CXF是一个全面的Web服务框架,它支持多种协议和标准,如WS-*(包括WS-Security、WS-ReliableMessaging等)、RESTful服务以及JAX-RS和JAX-WS...
7. **测试用例或示例数据**:如果提供,可能有`test.jsp`或`sampleData.sql`,用于演示留言板功能或填充初始的测试数据。 学习和理解这样一个留言板JSP代码,开发者可以了解到如何在JSP中处理表单提交、如何与...
9. **测试**:项目可能包含单元测试和集成测试,确保代码的质量和功能的正确性。JUnit和Mockito等工具可能被用来编写和执行测试用例。 10. **设计模式**:项目中可能会应用到多种设计模式,如工厂模式、单例模式、...
8. **单元测试**:为了确保代码质量,项目可能包含了JUnit或其他测试框架的测试用例,用于验证各个模块的功能。 在学习这个项目时,应重点理解以下几个知识点: - **Java基础**:包括类、对象、继承、封装、多态等...
标签"JavaWeb 实验报告"进一步确认了这是一个实践性质的学习材料,可能包括实际的代码示例、测试用例以及运行结果的解释。实验报告通常包含对实现功能的详细说明,步骤解析,可能遇到的问题及解决方案,这对于初学者...
通过JUnit,开发者可以为代码编写测试用例,确保功能正确性,并在修改代码后重新运行测试,以检测潜在的问题。 ### Java5的新特性 #### 静态导入 静态导入允许直接使用类的静态成员,无需前缀,提高了代码的可读性...