我有一个服务,它在HttpServletRequest对象上做一些工作,特别是使用request.getParameterMap和request.getParameter来构造对象。
我想知道是否有一种直接的方法来获取所提供的url,比如字符串形式。
String url = "http://www.example.com/?param1=value1¶m";
并轻松地将其转换为HttpServletRequest对象,以便我可以使用我的单元测试对其进行测试?或者至少是为了让request.getParameterMap和request.getParameter正常工作?
发布于 2013-12-03 00:33:18
下面是MockHttpServletRequest的使用方法:
// given
MockHttpServletRequest request = new MockHttpServletRequest();
request.setServerName("www.example.com");
request.setRequestURI("/foo");
request.setQueryString("param1=value1¶m");
// when
String url = request.getRequestURL() + '?' + request.getQueryString(); // assuming there is always queryString.
// then
assertThat(url, is("http://www.example.com:80/foo?param1=value1¶m"));
发布于 2011-06-23 22:11:34
您通常会在实际连接到服务的集成测试中测试这些内容。要进行单元测试,应该测试servlet的doGet/doPost方法使用的对象。
通常,您不希望在servlet方法中包含太多代码,您可能希望创建一个bean类来处理操作,并将您自己的对象传递给它,而不是servlet API对象。
https://stackoverflow.com/questions/6455359
复制相似问题