【发布时间】:2016-09-06 20:20:20
【问题描述】:
在对 SO 进行一些搜索时,我遇到了 this 一段代码,用于从 URL 中提取“appUrl”:
public static String getAppUrl(HttpServletRequest request)
{
String requestURL = request.getRequestURL().toString();
String servletPath = request.getServletPath();
return requestURL.substring(0, requestURL.indexOf(servletPath));
}
我的问题是一个单元如何测试这样的东西?关键问题是如何创建HttpServletRequest的实例进行单元测试?
Fwiw 我尝试了一些谷歌搜索,大多数回复都围绕着嘲笑班级。但是,如果我模拟该类以使 getRequestURL 返回我希望它返回的内容(举个例子,因为模拟本质上会覆盖一些返回固定值的方法),那么我那时并没有真正测试代码。我也尝试了 httpunit 库,但这也无济于事。
【问题讨论】:
-
您在模拟依赖项,而不是在测试系统。您没有在这里测试 getRequestURL,因为它不在范围内
-
您可以尝试在
spring-testmaven 依赖项中使用org.springframework.mock.web.MockHttpServletRequest。它可以满足我的需要。
标签: unit-testing servlets