- 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);
}
}
不知道测试重定向的页面是不是这么测,我想应该是的。
分享到:
相关推荐
Easymock是一个流行的Java库,它提供了创建和管理模拟对象的能力,帮助测试人员编写单元测试。 在"easymock测试servlet"的场景中,我们看到`SampleServletTest`类正在使用Easymock来测试`SampleServlet`类的行为。...
总结来说,JUnit作为Java单元测试的核心工具,结合Mock Objects技术,可以有效地测试和验证代码的正确性。遵循良好的测试实践,如细粒度测试、测试隔离和自动化测试运行,将有助于构建健壮、可靠的软件系统。
`junit`和`easymock`是两个非常重要的Java测试工具,它们可以帮助我们有效地对Servlet进行单元测试和模拟测试。 `junit`是一个流行的开源单元测试框架,它为Java程序员提供了一种方便的方式来编写和运行可重复的...
它也是属于使用Mock对象测试,但是与EasyMock不同的是,EasyMock是提供了创建Mock对象的API,而StrutsTest则是专门负责测试Struts应用程序的Mock对象测试框架。除了容器外测试,StrutsTest也可以很方便的用容器内的...
- **Mock框架**:诸如Mockito、EasyMock等模拟对象框架,在编写单元测试时非常有用,它们可以帮助创建模拟对象来替代真实的依赖项,从而避免复杂的外部系统集成问题。 - **版本控制工具**:如Git等版本控制系统是...