如何在 JUNIT 测试中从 WEB-INF 获取文件
How to get a file from WEB-INF in a JUNIT test
在网络应用程序的控制器中,当给定条件为真时,我将重定向到其他页面 (xyz.jpsx)。
现在,在 Junit 测试中,我想强制重定向正确完成,而且重定向指向实际存在的 jsp。
我无法在 Junit 中找到从 WEB-INF 中读取文件的方法。我不想对完整路径进行硬编码,因为该解决方案的可移植性不高。
我完全理解 WEB-INF 中的文件不在类路径中这一事实,但可能有一种方法可以访问这些文件。寻找一种也适用于我的集成服务器的便携式解决方案。
有很棒的 NIO.2 API in JDK 1.7 with class Path,在这个 class 的帮助下,您可以使用 JSP 轻松访问文件夹(没有任何 ServletContexts 或其他任何东西)并执行您需要的操作JSP 个文件列表,这里是给你的小样本:
import org.junit.Test;
import java.io.File;
import java.nio.file.Paths;
public class WebInfAccessTest
{
@Test
public void shouldListJsps()
{
File jspFolder = Paths.get("src/main/webapp/WEB-INF/pages").toFile();
for (File jsp : jspFolder.listFiles())
System.out.println(jsp.getName());
}
}
======================================================================
Here is result for my test Maven project
======================================================================
$ mvn test
...
T E S T S
-------------------------------------------------------
Running WebInfAccessTest
add.jsp
get.jsp
list.jsp
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.073 sec
在网络应用程序的控制器中,当给定条件为真时,我将重定向到其他页面 (xyz.jpsx)。
现在,在 Junit 测试中,我想强制重定向正确完成,而且重定向指向实际存在的 jsp。
我无法在 Junit 中找到从 WEB-INF 中读取文件的方法。我不想对完整路径进行硬编码,因为该解决方案的可移植性不高。
我完全理解 WEB-INF 中的文件不在类路径中这一事实,但可能有一种方法可以访问这些文件。寻找一种也适用于我的集成服务器的便携式解决方案。
有很棒的 NIO.2 API in JDK 1.7 with class Path,在这个 class 的帮助下,您可以使用 JSP 轻松访问文件夹(没有任何 ServletContexts 或其他任何东西)并执行您需要的操作JSP 个文件列表,这里是给你的小样本:
import org.junit.Test;
import java.io.File;
import java.nio.file.Paths;
public class WebInfAccessTest
{
@Test
public void shouldListJsps()
{
File jspFolder = Paths.get("src/main/webapp/WEB-INF/pages").toFile();
for (File jsp : jspFolder.listFiles())
System.out.println(jsp.getName());
}
}
======================================================================
Here is result for my test Maven project
======================================================================
$ mvn test
...
T E S T S
-------------------------------------------------------
Running WebInfAccessTest
add.jsp
get.jsp
list.jsp
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.073 sec