对于要在项目里对servlet进行单元测试,可以使用junit进行,而用junit测试servlet时有两种方法,一种使用httpunit + servlet测试,另一种是easymock + servlet,在这里重点介绍使用easymock方法进行的junit测试。
环境:eclipse 3.7 , junit 4 , easymock 3.1。
测试单元代码如下 :
import static org.junit.Assert.fail;
import static org.easymock.EasyMock.*;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.ws.Action;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.joyveb.award.web.AwardResultServlet;
public class ResultServletTest {
private AwardResultServlet servlet;
private HttpServletRequest mockRequest;
private HttpServletResponse mockResponse;
@Before
public void setUp(){
servlet = new ResultServlet();
mockRequest = createMock(HttpServletRequest.class); //加载
mockResponse = createMock(HttpServletResponse.class);
}
@After
public void tearDown(){
verify(mockRequest); //验证
verify(mockResponse);
}
@Test
public void testDoPostHttpServletRequestHttpServletResponse() throws ServletException, IOException {
mockRequest.getParameter("id"); //传入参数
expectLastCall().andReturn("1");
mockRequest.getParameter("name"); //传入参数
expectLastCall().andReturn("chevy");
mockRequest.getParameter("gender"); //传入参数
expectLastCall().andReturn("男");
replay(mockRequest); //回放
replay(mockResponse);
servlet.doPost(mockRequest, mockResponse); //调用
}
}
servlet类就可以根据上面定义的类名,简单写个doPost方法就可以进行junit测试了。
分享到:
相关推荐
在“4-EasyMock-Servlet.rar”这个压缩包中,我们很可能是得到了一个关于如何使用EasyMock进行Servlet测试的教程或者示例代码。让我们详细探讨一下EasyMock与Servlet结合使用的相关知识点。 1. **EasyMock基本概念*...
在"easymock测试servlet"的场景中,我们看到`SampleServletTest`类正在使用Easymock来测试`SampleServlet`类的行为。以下是一些关键知识点: 1. **Easymock库**:Easymock是一个开源库,它提供了模拟Java对象的方法...
本文将详细讲解如何使用 Easymock 对 Servlet 进行单元测试,特别是针对 `HttpServletRequest` 中获取参数的方法 `getParamsNames()`。 在Servlet编程中,`HttpServletRequest` 是一个核心接口,它提供了处理HTTP...
1. **导入依赖**:将junit4.4.jar和easymock-3.1.jar添加到项目的类路径中,以便在编译和运行测试时能使用这两个库。 2. **创建测试类**:为要测试的Servlet创建一个单独的测试类,通常这个类会继承自`junit....
7. **测试**:在Spring2中,我们可以使用JUnit进行单元测试,结合`Mockito`或`EasyMock`进行依赖模拟,确保代码质量。 以上就是MyEclipse中配置Spring2的基本流程和相关知识点。虽然Spring已经发展到更高版本,但...
在Servlet的doGet()测试中,可以使用mock的HttpRequest和HttpResponse对象,而在Service层测试中,可以模拟DAO的接口,避免真实数据库交互。 在进行测试时,我们还需要关注测试结果的评估。通过测试报告可以了解...
easymock-1.2_Java1.3.jar easymock-3.0.jar 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 ...
- Spring TestContext框架支持模拟对象(如Mockito)和存根(如EasyMock),使得在测试中可以替换真实的依赖,从而隔离测试。 - 使用`@Autowired`和`@Qualifier`注解可以自动注入测试所需的bean,同时可以通过`@...
JUnit 测试添加到使用 EasyMock 库模拟的几种方法中。 提供 Ant 构建文件(最初使用 Tomcat 部署的服务器)。 客户端(Web 前端)使用 AJAX 请求和自定义 MVC 架构:使用 Q.js 进行承诺、使用 Sammy.js 路由、...
3. **easymock-3.4.jar**:EasyMock是一个模拟框架,用于单元测试,允许开发者创建和控制对象的预期行为。在测试Tomcat的组件或服务时,EasyMock可以帮助隔离依赖并提供预定义的行为。 4. **junit-4.12.jar**:...
-展示柜奥普方面spring-aop 引导程序缓存——弹簧缓存数据库米巴蒂斯蔚来米娜2 nosql redis -- jedis, spring-data-redis 序列化——msgpack,protobuf 测试单位——dbunit、easymock、junit、mockito、powermock ...
2. **构建环境**: 创建一个Maven项目,如`catalina_home`,并配置`pom.xml`文件,添加必要的依赖,包括Tomcat自身的模块和其他辅助测试库(如JUnit和EasyMock)。 3. **配置源码路径**: 在IDE中导入Tomcat源码,确保...
这意味着您可以不受限制地使用任何Java工具:JUnit,反射,Easymock,Mockito等。 编写测试如下所示: @Testpublic void clickOnButtonShouldDisplayMessageInLabel() { // Arrange SampleView view = new ...
2. **easymock**: EasyMock是一个单元测试框架,允许开发者创建模拟对象来隔离测试代码。在Tomcat的源码测试中,它可能用于模拟复杂的协作对象。 3. **hamcrest-core**: Hamcrest是一个匹配对象的库,常用于单元...
它包含了JUnit和EasyMock作为测试库,以便进行单元测试。 在IDEA中导入这个项目,选择“Import Project”,然后浏览到`pom.xml`所在目录。IDEA会自动识别这是一个Maven项目,并加载相关的依赖和构建配置。 在IDEA...
StrtusTest是junit的扩展,使用它,不需要启动servlet容器就可以方便的测试struts应用程序(容器外测试)。它也是属于使用Mock对象测试,但是与EasyMock不同的是,EasyMock是提供了创建Mock对象的API,而StrutsTest...
Spring 的测试套件用到了 EasyMock,因此只有构建和运行测试套件时才用到这个 JAR,无需随你的应用一起发布。 freemarkerfreemaker.jar Spring 提供了 FreeMarker 模板引擎的包装类,还为把 FreeMarker 模板用作 ...
5. **单元测试**:熟练使用JUnit进行单元测试,了解Dbunit和EasyMock,对测试驱动开发(TDD)有一定的理解和实践。 6. **Web前端技术**:熟悉HTML5、CSS3、JavaScript,能使用jQuery、Ajax进行前后端交互,有Vue.js...
- **Mock框架**:诸如Mockito、EasyMock等模拟对象框架,在编写单元测试时非常有用,它们可以帮助创建模拟对象来替代真实的依赖项,从而避免复杂的外部系统集成问题。 - **版本控制工具**:如Git等版本控制系统是...