In a controller of a webapp, I am redirecting to some other page (xyz.jpsx) when a given condition is true.
Now, in a Junit test, I want to enforce that the redirect is done correctly, but also that the redirect points to a jsp that actually exists.
I couldn't find a way, inside a Junit, to read files from inside WEB-INF. I don't want to hardcode the fullpath as the solution wont be much portable.
I totally understand the fact that files in WEB-INF are out the classpath, but there might be a way to access theses files. Looking for a portable solution that will also work on my integration server.
There is great NIO.2 API in JDK 1.7 with class Path, with help of this class you can easily access to folder with your JSPs (without any ServletContexts or whatever) and do what you need with list of JSP files, here is little sample for you:
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With