设置 MockServletContext 的真实路径

Him*_*dav 5 java junit spring servlets

我正在尝试存根MockServletConfigMockServletContext. 在我的 servletinit()方法中,servlet 像这样获取 realPath:

String realPath = servletContext.getRealPath(fileSeperator+"WEB-INF");
Run Code Online (Sandbox Code Playgroud)

对于我的测试用例 realPath 为空。我正在尝试像这样设置它:

MockServletContext context = new MockServletContext();
        context.setContextPath("D:/Projects/ProjectName/webapps");
        MockServletConfig config = new MockServletConfig(context);
Run Code Online (Sandbox Code Playgroud)

这里 WEB-INF 文件夹在webapps文件夹中。
我的有什么问题MockServletContext

Rom*_*val 0

从 Spring 3.x 开始,getRealPath它是基于resourceBasePath而不是contextPath,所以只需使用适当的构造函数正确设置它MockServletContext

new MockServletContext("D:/Projects/ProjectName/webapps", null)
Run Code Online (Sandbox Code Playgroud)