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");
}

}

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值