`
donald3003a
  • 浏览: 65578 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论
  • 淼淼E馒头: 这举列有点不恰当啊。。电影人和不同类型的电影。是两个不同概念 ...
    合成模式

junit 测试 servlet easymock方式

阅读更多
junit 4,easymock 3
1、测试代码
import static org.junit.Assert.assertEquals;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.easymock.EasyMock;
import org.junit.Before;
import org.junit.Test;

public class SampleServletTest {
	private SampleServlet servlet;

	private HttpServletRequest mockRequest;

	private HttpServletResponse mockRespones;

	private ServletContext mockServletContext;

	private RequestDispatcher mockDispathcher;

	@Before
	public void setUp() throws Exception {
		mockRequest = EasyMock.createMock(HttpServletRequest.class);
		mockRespones = EasyMock.createMock(HttpServletResponse.class);
		mockServletContext = EasyMock.createMock(ServletContext.class);
		mockDispathcher = EasyMock.createMock(RequestDispatcher.class);

		servlet = new SampleServlet() {

			private static final long serialVersionUID = 1L;

			public ServletContext getServletContext() {
				return mockServletContext;
			}
		};

	}


	@Test
	public void testDoGetHttpServletRequestHttpServletResponse() throws ServletException, IOException {
		EasyMock.expect(mockRequest.getParameter("username")).andReturn("test").times(1);
		EasyMock.expect(mockRequest.getParameter("password")).andReturn("123456").times(1);
		EasyMock.expect(mockServletContext.getRequestDispatcher("dispather")).andReturn(mockDispathcher).times(1);
		mockDispathcher.forward(mockRequest, mockRespones);
		EasyMock.expectLastCall();
		EasyMock.replay(mockRequest, mockServletContext, mockDispathcher);
		servlet.doGet(mockRequest, mockRespones);
		EasyMock.verify(mockDispathcher);
	}

	@Test
	public void testDoGetFailed() throws ServletException, IOException {
		EasyMock.expect(mockRequest.getParameter("username")).andReturn("test").times(1);
		EasyMock.expect(mockRequest.getParameter("password")).andReturn("123458").times(1);
		EasyMock.replay(mockRequest);
		try {
			servlet.doGet(mockRequest, mockRespones);
		} catch (Exception e) {
			assertEquals("Login error", e.getMessage());
		}
		EasyMock.verify(mockRequest);

	}

}



2、实现代码
import java.io.IOException;

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;

public class SampleServlet extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		if ("test".equals(username) && "123456".equals(password)) {
			ServletContext context = getServletContext();
			RequestDispatcher dispatcher = context
					.getRequestDispatcher("dispather");
			dispatcher.forward(request, response);
		} else {
			throw new RuntimeException("Login error");
		}

	}

}
分享到:
评论

相关推荐

    easymock测试servlet

    在"easymock测试servlet"的场景中,我们看到`SampleServletTest`类正在使用Easymock来测试`SampleServlet`类的行为。以下是一些关键知识点: 1. **Easymock库**:Easymock是一个开源库,它提供了模拟Java对象的方法...

    4-EasyMock-Servlet.rar

    在“4-EasyMock-Servlet.rar”这个压缩包中,我们很可能是得到了一个关于如何使用EasyMock进行Servlet测试的教程或者示例代码。让我们详细探讨一下EasyMock与Servlet结合使用的相关知识点。 1. **EasyMock基本概念*...

    servlet测试jar包

    `junit`和`easymock`是两个非常重要的Java测试工具,它们可以帮助我们有效地对Servlet进行单元测试和模拟测试。 `junit`是一个流行的开源单元测试框架,它为Java程序员提供了一种方便的方式来编写和运行可重复的...

    easymock-request.getParamsNames

    Easymock 提供了一种方式来模拟 `HttpServletRequest` 对象,这样我们可以在没有实际HTTP请求的情况下测试我们的Servlet代码。首先,我们需要创建一个 `HttpServletRequest` 的模拟对象,并设置期望的行为。例如,...

    junit mock

    在Servlet的doGet()测试中,可以使用mock的HttpRequest和HttpResponse对象,而在Service层测试中,可以模拟DAO的接口,避免真实数据库交互。 在进行测试时,我们还需要关注测试结果的评估。通过测试报告可以了解...

    simple-crm-rest-and-spa:使用 Servlets + Hibernate 持久性 + JUnit 测试 + SPA w 的 REST 服务。 AJAX 请求 + MVC 架构 + 更多的库和技术..

    JUnit 测试添加到使用 EasyMock 库模拟的几种方法中。 提供 Ant 构建文件(最初使用 Tomcat 部署的服务器)。 客户端(Web 前端)使用 AJAX 请求和自定义 MVC 架构:使用 Q.js 进行承诺、使用 Sammy.js 路由、...

    Spring 2.5 TestContext

    - Spring TestContext框架支持模拟对象(如Mockito)和存根(如EasyMock),使得在测试中可以替换真实的依赖,从而隔离测试。 - 使用`@Autowired`和`@Qualifier`注解可以自动注入测试所需的bean,同时可以通过`@...

    gwt-test-utils:gwt-test-utils是一个Java框架,允许以高效,简便的方式测试GWT客户端代码

    这意味着您可以不受限制地使用任何Java工具:JUnit,反射,Easymock,Mockito等。 编写测试如下所示: @Testpublic void clickOnButtonShouldDisplayMessageInLabel() { // Arrange SampleView view = new ...

    tomcat-8.0依懒包

    4.12是JUnit的一个稳定版本,它支持注解、测试套件、参数化测试等特性,对于测试Tomcat的源代码非常有用。 5. **wsdl4j-1.6.2.jar**:WSDL4J是一个用于处理WSDL(Web服务描述语言)的Java库,用于构建和解析描述Web...

    StrutsTest

    StrtusTest是junit的扩展,使用它,不需要启动servlet容器就可以方便的测试struts应用程序(容器外测试)。它也是属于使用Mock对象测试,但是与EasyMock不同的是,EasyMock是提供了创建Mock对象的API,而StrutsTest...

    tomcat源码运行缺少jar

    2. **easymock**: EasyMock是一个单元测试框架,允许开发者创建模拟对象来隔离测试代码。在Tomcat的源码测试中,它可能用于模拟复杂的协作对象。 3. **hamcrest-core**: Hamcrest是一个匹配对象的库,常用于单元...

    S03-tomcat源码调试以及架构学习1

    2. **构建环境**: 创建一个Maven项目,如`catalina_home`,并配置`pom.xml`文件,添加必要的依赖,包括Tomcat自身的模块和其他辅助测试库(如JUnit和EasyMock)。 3. **配置源码路径**: 在IDE中导入Tomcat源码,确保...

    Tomcat8-源码编译及开发1

    它包含了JUnit和EasyMock作为测试库,以便进行单元测试。 在IDEA中导入这个项目,选择“Import Project”,然后浏览到`pom.xml`所在目录。IDEA会自动识别这是一个Maven项目,并加载相关的依赖和构建配置。 在IDEA...

    spring2配置

    7. **测试**:在Spring2中,我们可以使用JUnit进行单元测试,结合`Mockito`或`EasyMock`进行依赖模拟,确保代码质量。 以上就是MyEclipse中配置Spring2的基本流程和相关知识点。虽然Spring已经发展到更高版本,但...

    J2EE 学习计划J2EE 学习计划J2EE 学习计划J2EE 学习计划

    - **Mock框架**:诸如Mockito、EasyMock等模拟对象框架,在编写单元测试时非常有用,它们可以帮助创建模拟对象来替代真实的依赖项,从而避免复杂的外部系统集成问题。 - **版本控制工具**:如Git等版本控制系统是...

    xun:spring, spring-mvc, struts2, freemarker, hibernate, mybatis, spring-data-jpa, shiro

    -展示柜奥普方面spring-aop 引导程序缓存——弹簧缓存数据库米巴蒂斯蔚来米娜2 nosql redis -- jedis, spring-data-redis 序列化——msgpack,protobuf 测试单位——dbunit、easymock、junit、mockito、powermock ...

    spring框架各jar包详解

    Spring 的测试套件用到了 EasyMock,因此只有构建和运行测试套件时才用到这个 JAR,无需随你的应用一起发布。 freemarkerfreemaker.jar Spring 提供了 FreeMarker 模板引擎的包装类,还为把 FreeMarker 模板用作 ...

    JavaEE求职简历-姓名-JAVA开发工程师.docx

    5. **单元测试**:熟练使用JUnit进行单元测试,了解Dbunit和EasyMock,对测试驱动开发(TDD)有一定的理解和实践。 6. **Web前端技术**:熟悉HTML5、CSS3、JavaScript,能使用jQuery、Ajax进行前后端交互,有Vue.js...

    毕业设计 Java web项目源码整合开发ssm 网上淘书吧

    10. **测试**:JUnit或TestNG可能用于编写单元测试,Mockito或EasyMock可能用于模拟依赖,确保代码质量。 以上是对这个Java Web项目可能涉及的一些关键知识点的解析,具体的实现细节和功能扩展会根据实际项目需求而...

Global site tag (gtag.js) - Google Analytics