设置MockServletContext的实际路径

时间:2013-04-01 14:33:41

标签: java spring servlets junit

我正在尝试存根MockServletConfigMockServletContext。在我的servlet init()方法中,servlet获取如下的realPath:

String realPath = servletContext.getRealPath(fileSeperator+"WEB-INF");

对于我的测试用例,realPath将为null。我试图像这样设置它:

MockServletContext context = new MockServletContext();
        context.setContextPath("D:/Projects/ProjectName/webapps");
        MockServletConfig config = new MockServletConfig(context);

此处WEB-INF文件夹位于webapps文件夹中。
我的MockServletContext有什么问题?

2 个答案:

答案 0 :(得分:0)

截至Spring 3.x getRealPath基于resourceBasePath而不是contextPath,因此只需使用MockServletContext

的相应构造函数正确设置它
new MockServletContext("D:/Projects/ProjectName/webapps", null)

答案 1 :(得分:0)

您必须在路径前添加file:/。 例如:

ServletContext context = new MockServletContext("file:/D:/Projects/ProjectName/webapps");