首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用url字符串创建一个模拟的HttpServletRequest?

用url字符串创建一个模拟的HttpServletRequest?
EN

Stack Overflow用户
提问于 2011-06-23 22:06:14
回答 2查看 119.8K关注 0票数 70

我有一个服务,它在HttpServletRequest对象上做一些工作,特别是使用request.getParameterMap和request.getParameter来构造对象。

我想知道是否有一种直接的方法来获取所提供的url,比如字符串形式。

代码语言:javascript
复制
String url = "http://www.example.com/?param1=value1&param";

并轻松地将其转换为HttpServletRequest对象,以便我可以使用我的单元测试对其进行测试?或者至少是为了让request.getParameterMap和request.getParameter正常工作?

EN

回答 2

Stack Overflow用户

发布于 2013-12-03 00:33:18

下面是MockHttpServletRequest的使用方法:

代码语言:javascript
复制
// given
MockHttpServletRequest request = new MockHttpServletRequest();
request.setServerName("www.example.com");
request.setRequestURI("/foo");
request.setQueryString("param1=value1&param");

// when
String url = request.getRequestURL() + '?' + request.getQueryString(); // assuming there is always queryString.

// then
assertThat(url, is("http://www.example.com:80/foo?param1=value1&param"));
票数 50
EN

Stack Overflow用户

发布于 2011-06-23 22:11:34

您通常会在实际连接到服务的集成测试中测试这些内容。要进行单元测试,应该测试servlet的doGet/doPost方法使用的对象。

通常,您不希望在servlet方法中包含太多代码,您可能希望创建一个bean类来处理操作,并将您自己的对象传递给它,而不是servlet API对象。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6455359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档