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"的场景中,我们看到`SampleServletTest`类正在使用Easymock来测试`SampleServlet`类的行为。以下是一些关键知识点: 1. **Easymock库**:Easymock是一个开源库,它提供了模拟Java对象的方法...
在“4-EasyMock-Servlet.rar”这个压缩包中,我们很可能是得到了一个关于如何使用EasyMock进行Servlet测试的教程或者示例代码。让我们详细探讨一下EasyMock与Servlet结合使用的相关知识点。 1. **EasyMock基本概念*...
`junit`和`easymock`是两个非常重要的Java测试工具,它们可以帮助我们有效地对Servlet进行单元测试和模拟测试。 `junit`是一个流行的开源单元测试框架,它为Java程序员提供了一种方便的方式来编写和运行可重复的...
Easymock 提供了一种方式来模拟 `HttpServletRequest` 对象,这样我们可以在没有实际HTTP请求的情况下测试我们的Servlet代码。首先,我们需要创建一个 `HttpServletRequest` 的模拟对象,并设置期望的行为。例如,...
在Servlet的doGet()测试中,可以使用mock的HttpRequest和HttpResponse对象,而在Service层测试中,可以模拟DAO的接口,避免真实数据库交互。 在进行测试时,我们还需要关注测试结果的评估。通过测试报告可以了解...
JUnit 测试添加到使用 EasyMock 库模拟的几种方法中。 提供 Ant 构建文件(最初使用 Tomcat 部署的服务器)。 客户端(Web 前端)使用 AJAX 请求和自定义 MVC 架构:使用 Q.js 进行承诺、使用 Sammy.js 路由、...
- Spring TestContext框架支持模拟对象(如Mockito)和存根(如EasyMock),使得在测试中可以替换真实的依赖,从而隔离测试。 - 使用`@Autowired`和`@Qualifier`注解可以自动注入测试所需的bean,同时可以通过`@...
这意味着您可以不受限制地使用任何Java工具:JUnit,反射,Easymock,Mockito等。 编写测试如下所示: @Testpublic void clickOnButtonShouldDisplayMessageInLabel() { // Arrange SampleView view = new ...
4.12是JUnit的一个稳定版本,它支持注解、测试套件、参数化测试等特性,对于测试Tomcat的源代码非常有用。 5. **wsdl4j-1.6.2.jar**:WSDL4J是一个用于处理WSDL(Web服务描述语言)的Java库,用于构建和解析描述Web...
StrtusTest是junit的扩展,使用它,不需要启动servlet容器就可以方便的测试struts应用程序(容器外测试)。它也是属于使用Mock对象测试,但是与EasyMock不同的是,EasyMock是提供了创建Mock对象的API,而StrutsTest...
2. **easymock**: EasyMock是一个单元测试框架,允许开发者创建模拟对象来隔离测试代码。在Tomcat的源码测试中,它可能用于模拟复杂的协作对象。 3. **hamcrest-core**: Hamcrest是一个匹配对象的库,常用于单元...
2. **构建环境**: 创建一个Maven项目,如`catalina_home`,并配置`pom.xml`文件,添加必要的依赖,包括Tomcat自身的模块和其他辅助测试库(如JUnit和EasyMock)。 3. **配置源码路径**: 在IDE中导入Tomcat源码,确保...
它包含了JUnit和EasyMock作为测试库,以便进行单元测试。 在IDEA中导入这个项目,选择“Import Project”,然后浏览到`pom.xml`所在目录。IDEA会自动识别这是一个Maven项目,并加载相关的依赖和构建配置。 在IDEA...
7. **测试**:在Spring2中,我们可以使用JUnit进行单元测试,结合`Mockito`或`EasyMock`进行依赖模拟,确保代码质量。 以上就是MyEclipse中配置Spring2的基本流程和相关知识点。虽然Spring已经发展到更高版本,但...
- **Mock框架**:诸如Mockito、EasyMock等模拟对象框架,在编写单元测试时非常有用,它们可以帮助创建模拟对象来替代真实的依赖项,从而避免复杂的外部系统集成问题。 - **版本控制工具**:如Git等版本控制系统是...
-展示柜奥普方面spring-aop 引导程序缓存——弹簧缓存数据库米巴蒂斯蔚来米娜2 nosql redis -- jedis, spring-data-redis 序列化——msgpack,protobuf 测试单位——dbunit、easymock、junit、mockito、powermock ...
Spring 的测试套件用到了 EasyMock,因此只有构建和运行测试套件时才用到这个 JAR,无需随你的应用一起发布。 freemarkerfreemaker.jar Spring 提供了 FreeMarker 模板引擎的包装类,还为把 FreeMarker 模板用作 ...
5. **单元测试**:熟练使用JUnit进行单元测试,了解Dbunit和EasyMock,对测试驱动开发(TDD)有一定的理解和实践。 6. **Web前端技术**:熟悉HTML5、CSS3、JavaScript,能使用jQuery、Ajax进行前后端交互,有Vue.js...
10. **测试**:JUnit或TestNG可能用于编写单元测试,Mockito或EasyMock可能用于模拟依赖,确保代码质量。 以上是对这个Java Web项目可能涉及的一些关键知识点的解析,具体的实现细节和功能扩展会根据实际项目需求而...