EasyMock模拟HttpServletRequest进行JUnit测试
0
使用JUnit测试的时候,HttpServletRequest需要进行模拟才可以,所以就用到了EasyMock,使用方法如下:
public static void main(String[] args) throws UnsupportedEncodingException {
String queryString = "name=acgist&age=24";
String[] queryStrings = queryString.split("&");
int index;
String key, value;
Map<String, String> map = new HashMap<String, String>();
HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
for (String paras : queryStrings) {
index = paras.indexOf("=");
key = paras.substring(0, index);
value = URLDecoder.decode(paras.substring(index + 1), "utf-8");
map.put(key, value);
EasyMock.expect(request.getParameter(key)).andReturn(value).times(1); // 只能使用一次
}
EasyMock.expect(request.getParameterMap()).andReturn(map).anyTimes(); // 没有次数限制
EasyMock.replay(request);
System.out.println(request.getParameter("age"));
// System.out.println(request.getParameter("age")); // 两次保存
System.out.println(request.getParameter("name"));
System.out.println(request.getParameterMap()); // 无次数限制
System.out.println(request.getParameterMap());
}
参考文章:https://www.ibm.com/developerworks/cn/opensource/os-cn-easymock/